Je souhaite lire un fichier MP3 sur une carte son autre que celle par défaut (par exemple, j'ai branché un casque USB).Changement de carte son et lecture d'un fichier MP3
J'ai un code qui fonctionne parfaitement bien si je veux lire un fichier WAV sur une carte son différente. Mais avec MP3, ça échoue juste. J'essaie d'écrire le code en C#, mais pour qu'il n'y ait rien entre l'application et WinAPI (par exemple interop), je l'ai traduit en VB6. Plus précisément, ce qui échoue est l'appel à changer la carte son - mciSendCommand - et il échoue avec l'erreur 274 - The MCI device you are using does not support the specified command
. La séquence avec les opérations de type MCI est typiquement comme ceci: Ouvrir un fichier, Faire des opérations (par exemple changer de carte son, etc ...), puis jouer.
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
Fait intéressant, si je veux lire un fichier WAV, pour lequel je dois l'ouvrir avec waveaudio
au lieu de mpegvideo
(comme celui-ci cmd = "Open test.mp3 type waveaudio alias WAVFile"
), tout fonctionne bien. Mais peu importe ce que j'ai essayé, ça ne marchera pas si j'essaie d'ouvrir un fichier MP3.
Qu'est-ce qui me manque? J'ai vu une douzaine de questions sans réponse comme celle-ci remontant à 2000 - il doit y avoir un moyen de lire un fichier MP3 sur une carte son différente.
est ici un exemple ASM MTBE peut vous aider à: http: // www. rohitab.com/discuss/topic/9205-play-mpeg-mp3-avi-probably/ – Jester
ce gars Dave a l'air d'avoir rencontré le même problème: http://www.itlisting.org/1-windows-media/911fe1683fd26cc4 .aspx –
@Jester L'exemple ASM ne modifie pas le périphérique audio sur lequel le fichier mp3 sera lu. Il joue simplement le fichier. Cette partie fonctionne bien pour moi. Changer d'appareil sur lequel jouer - c'est ce qui ne marche pas. – AngryHacker