c # — Смена звуковой карты и проигрывание 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:

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]