Смена звуковой карты и проигрывание MP3

Я хочу воспроизвести MP3 на звуковой карте, отличной от стандартной (например, я подключил USB-гарнитуру).

У меня есть код, который отлично работает, если я хочу воспроизвести файл WAV на другой звуковой карте. Но с MP3 это просто не получается. Я пытаюсь написать код на C#, но ради того, чтобы между приложением и WinAPI ничего не было (например, interop), я перевел его на VB6. В частности, то, что терпит неудачу, является вызовом, чтобы изменить звуковую карту - mciSendCommand - и это терпит неудачу с ошибкой 274 - The MCI device you are using does not support the specified command, Последовательность операций с типом MCI обычно такая: открыть файл, выполнить операции (например, изменить звуковую карту и т. Д.), Затем воспроизвести.

Dim cmd as String
Dim rc as Long
Dim lngDeviceID As Long
Dim parms As MCI_WAVE_SET_PARMS

cmd = "Open test.mp3 type mpegvideo alias Mp3File"
rc = mciSendString(CommandString, vbNullString, 0, 0&)  ' Open works

lngDeviceID = mciGetDeviceID("Mp3File")
parms.wOutput = 1 ' tell it to playback on the 2nd card 

rc = mciSendCommand(lngDeviceID, MCI_SET, MCI_WAVE_OUTPUT, parms) ' FAILS with 274
If (rc <> MMSYSERR_NOERROR) Then
    ' The command failed.
    MsgBox "Change card: " & GetMCIErrorString(rc)
End If

Интересно, если я хочу воспроизвести файл WAV, для которого я должен открыть его с waveaudio вместо mpegvideo (как это cmd = "Open test.mp3 type waveaudio alias WAVFile") все отлично работает. Но что бы я ни пытался, это не сработает, если я попытаюсь открыть файл MP3.

Что мне не хватает? Я видел дюжину вопросов без ответов, подобных этому, начиная с 2000 года - должен быть способ воспроизведения файла MP3 на другой звуковой карте.

1 ответ

Ты пытался изменить

cmd = "Open test.mp3 type mpegvideo alias Mp3File"

в

cmd = "Open test.mp3 type mpegvideo alias MediaFile"?

взгляните на эту статью о CodeProject, который использует.NET и Winmm.dll для воспроизведения файлов MP3:

http://www.codeproject.com/Articles/95000/MP3-Helper-Class

Другие вопросы по тегам