Создание тона или звука в приложении Windows Phone 8.1

Я пытаюсь создать тон с заданной частотой и продолжительностью на Windows Phone 8.1. Продолжая тему, представленную здесь: Воспроизведение звука из сгенерированного буфера в приложении Windows 8, вот мое решение для Windows Phone 8.1, работающее в симуляторе в Visual Studio 2015, в VB.NET, пытающееся реализовать SharpDX.XAudio2. Звук не выходит, но я думаю, что это правильно. Есть идеи?

' Initialization phase, keep this buffer during the life of your application
' Allocate 10s at 44.1Khz of stereo 16bit signals
Dim myBufferOfSamples = New Short(44100 * 10 * 2 - 1) {}

' Create a DataStream with pinned managed buffer
Dim ds = SharpDX.DataStream.Create(myBufferOfSamples, True, True)

Dim bu As New SharpDX.XAudio2.AudioBuffer
bu.Stream = ds
bu.AudioBytes = ds.Length
bu.Flags = SharpDX.XAudio2.BufferFlags.EndOfStream

'Fill myBufferOfSamples
Dim sampleBuffer() As Short = myBufferOfSamples
Dim sampleRate As Integer = 44100
Dim frequency As Double = 440
'
Dim totalTime As Double = 0
For i As Integer = 0 To sampleBuffer.Length - 2 Step 2
Dim sampleTime As Double = totalTime / sampleRate
Dim currentSample As Short
currentSample = Math.Sin(2 * Math.PI * frequency * sampleTime) * Short.MaxValue
sampleBuffer(i) = currentSample
sampleBuffer(i + 1) = currentSample
totalTime += 1
Next

' PCM 44.1Khz stereo 16 bit format
Dim waveFormat = New SharpDX.Multimedia.WaveFormat()

Dim xaudio As New SharpDX.XAudio2.XAudio2()
Dim masteringVoice As New SharpDX.XAudio2.MasteringVoice(xaudio)
Dim sourceVoice = New SharpDX.XAudio2.SourceVoice(xaudio, waveFormat, True)

' Submit the buffer
sourceVoice.SubmitSourceBuffer(bu, Nothing)

person swabygw    schedule 15.03.2016    source источник


Ответы (1)


Эта проблема была решена. Не только звуки, но и аккорды.

person swabygw    schedule 16.03.2016
comment
Не могли бы вы поделиться тем, что было изменено, чтобы заставить его работать? - person John; 28.03.2016
comment
@John: см. другой ответ ниже. - person swabygw; 13.04.2016
comment
Ладно, понял. Не могли бы вы принять этот ответ как правильный, пожалуйста? - person John; 14.04.2016