Я пытаюсь создать аудиоплеер, который может воспроизводить несколько файлов MP3 одновременно. Я думал, что мне нужно дополнение BASSMIX для этого. Я использую пример кода с un4seen сайта.
Это выглядит так:
Imports System
Imports Un4seen.Bass
Imports Un4seen.Bass.AddOn.Mix
SNIP
Shared Sub MixMeNow()
Try
Dim mixerStream As Integer = BassMix.BASS_Mixer_StreamCreate(44100, 2, BASSFlag.BASS_SAMPLE_FLOAT)
Debug.Print("MIXER STREAM: {0}", Bass.BASS_ErrorGetCode())
' now we need some source channels (must be decoding)
Dim streamA As Integer = Bass.BASS_StreamCreateFile("KOUD-HE.mp3", 0, 0,
BASSFlag.BASS_STREAM_DECODE Or BASSFlag.BASS_SAMPLE_FLOAT)
Debug.Print("STREAM A: {0}", Bass.BASS_ErrorGetCode())
Dim streamB As Integer = Bass.BASS_StreamCreateFile("Jij bent Zo.mp3", 0, 0,
BASSFlag.BASS_STREAM_DECODE Or BASSFlag.BASS_SAMPLE_FLOAT)
Debug.Print("STREAM B: {0}", Bass.BASS_ErrorGetCode())
' finally we plug them into the mixer
BassMix.BASS_Mixer_StreamAddChannel(mixerStream, streamA,
BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_MIXER_DOWNMIX)
Debug.Print("STREAM A TO MIX: {0}", Bass.BASS_ErrorGetCode())
BassMix.BASS_Mixer_StreamAddChannel(mixerStream, streamB,
BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_MIXER_DOWNMIX)
Debug.Print("STREAM B TO MIX: {0}", Bass.BASS_ErrorGetCode())
' and play the mixer channel
Bass.BASS_ChannelPlay(mixerStream, False)
Debug.Print("PLAY: {0}", Bass.BASS_ErrorGetCode())
Catch ex As Exception
Debug.Print("Anything else....")
End Try
End Sub
А потом:
Единственное, что я изменил по сравнению с исходным образцом, - это то, что я добавил try / catch, и я возвращаю коды ошибок обратно на консоль:
Debug.Print("STREAM A: {0}", Bass.BASS_ErrorGetCode())
Я думал, что это было довольно просто, но ... Вывод:
MIXER STREAM: BASS_OK
STREAM A: BASS_ERROR_INIT
STREAM B: BASS_ERROR_INIT
STREAM A TO MIX: BASS_ERROR_HANDLE
STREAM B TO MIX: BASS_ERROR_HANDLE
PLAY: BASS_ERROR_HANDLE
Я убедился, что приложение может найти файлы, необходимые для воспроизведения. Так, что я продолжаю получать ошибку INIT?