| Betreff | mciSendString: Abspielen einer WAV-Datei |
| Von | "Wolfgang Badura" |
| Datum | 05.10.2009 13:52:56 |
Liebe VB-Classic Gemeinde!
Mit Hilfe von mciSendString spiele ich verschiedene Multimediadateien ab:
MPEG2, MP3,WAV,AVI etc.
Das funktionierte bislang ausgezeichnet.
Nun erwarb ich den PCM-Recorder LS-10 von Olympus. Dessen WAV-Dateien lassen
sich mit meinem Programm nicht abspielen.
Die entscheidenden Kommandos zu Abspielen mit deren Rückgabewerten lauten:
nResult = mciSendString("open """ & sFile & """ type waveaudio alias TempMCI
buffer 6", 0, 0, 0)
'ergibt nResult = 0
nResult = mciSendString("play TempMCI from " & CStr(nFromPos), 0, 0, 0)
'ergibt nResult = 320 (was bedeutet das eigentlich im Klartext? Was ist
falsch?)
Nach Ausführung von mciSendString("open...) als auch mciSendString("play..)
erhalte ich beim Ausführen von
mciSendString "status TempMCI mode", sBuffer, Len(sBuffer), 0
den Status "stopped".
Die Länge in Sekunden wird richtig ermittelt, aber das Abspielen funzt
nicht. (was mich beim Status "stopped" nicht wundert)
Der Windows Mediaplayer und VLC-Mediaplayer und CoolEdit 2000 spielen die
Dateien ab.
Irgendetwas ist mit den PCM-Dateien des LS-10 anders als mit den WAV-Dateien
wie sie zB. CD-Grabber oder CoolEdit 2000 erzeugen.
Hat jemand eine Idee zur Problemlösung?
Mit bestem Dank im Voraus
Wolfgang
| Betreff | Re: mciSendString: Abspielen einer WAV-Datei |
| Von | =?iso-8859-1?Q?Jens_M=FCller?= |
| Datum | 05.10.2009 15:37:17 |
Hallo Wolfgang,
hörst du stattdessen ein "Ding"-Geräusch (zumindest falls du diesen
Systemton eingestellt hast)?
So war es bei mir mal mit einer Wave-Datei.
Ich kann also keine Problemlösung liefern sondern nur deine Beobachtung
bestätigen.
mciGetErrorString hilft vielleicht für die Fehlerlokalisation.
Jens
"Wolfgang Badura"
news:4ac9de20$0$1547$91cee783@newsreader03.highway.telekom.at...
> Liebe VB-Classic Gemeinde!
>
> Mit Hilfe von mciSendString spiele ich verschiedene Multimediadateien ab:
> MPEG2, MP3,WAV,AVI etc.
> Das funktionierte bislang ausgezeichnet.
> Nun erwarb ich den PCM-Recorder LS-10 von Olympus. Dessen WAV-Dateien
> lassen sich mit meinem Programm nicht abspielen.
>
> Die entscheidenden Kommandos zu Abspielen mit deren Rückgabewerten
> lauten:
> nResult = mciSendString("open """ & sFile & """ type waveaudio alias
> TempMCI buffer 6", 0, 0, 0)
> 'ergibt nResult = 0
> nResult = mciSendString("play TempMCI from " & CStr(nFromPos), 0, 0, 0)
> 'ergibt nResult = 320 (was bedeutet das eigentlich im Klartext? Was ist
> falsch?)
>
> Nach Ausführung von mciSendString("open...) als auch
> mciSendString("play..) erhalte ich beim Ausführen von
> mciSendString "status TempMCI mode", sBuffer, Len(sBuffer), 0
> den Status "stopped".
>
> Die Länge in Sekunden wird richtig ermittelt, aber das Abspielen funzt
> nicht. (was mich beim Status "stopped" nicht wundert)
>
> Der Windows Mediaplayer und VLC-Mediaplayer und CoolEdit 2000 spielen die
> Dateien ab.
> Irgendetwas ist mit den PCM-Dateien des LS-10 anders als mit den
> WAV-Dateien wie sie zB. CD-Grabber oder CoolEdit 2000 erzeugen.
>
> Hat jemand eine Idee zur Problemlösung?
>
> Mit bestem Dank im Voraus
> Wolfgang
>
>
>
>
| Betreff | Re: mciSendString: Abspielen einer WAV-Datei |
| Von | "Wolfgang Badura" |
| Datum | 05.10.2009 16:54:51 |
Hallo Jens!
"Jens Müller"
news:OFPn6DcRKHA.1876@TK2MSFTNGP06.phx.gbl...
> Hallo Wolfgang,
>
> hörst du stattdessen ein "Ding"-Geräusch (zumindest falls du diesen
> Systemton eingestellt hast)?
Es ist nichts zu hören.
> mciGetErrorString hilft vielleicht für die Fehlerlokalisation.
Danke für den Tip:
Der Fehler 320 ergibt den Text
"All wave devices that can play files in the current format are in use.
Wait until a wave device is free, and then try again."
Doch der ist unsinnig, da sonst kein Wave-Device in use ist.
Klassisch Microsoft?
Bei allen übrigen wav-Dateien geht es ja auch immer.
Aber vielleicht kann man diese WAV-Files von Olympus mit mciSendString
einfach nicht abspielen.
Ich habe es jetzt mit der Function sndPlaySound (ebenfalls aus der Lib
"winmm.dll") probiert und auch damit funktioniert es nicht!
Der Windows Media-Player, auch der VLC-Mediaplayer verwenden offenbar andere
API´s als jene aus der Lib "winmm.dll".
Wahrscheinlich gibt es irgendeinen Trick wie Einstellungen der Samplingrate
oder was weiß ich.
Danke einmal für die obige Anregung.
Wolfgang
| Betreff | Re: mciSendString: Abspielen einer WAV-Datei |
| Von | "Wolfgang Badura" |
| Datum | 20.10.2009 01:31:34 |
Liebe VB-Classic Gemeinde!
"Wolfgang Badura"
news:4ac9de20$0$1547$91cee783@newsreader03.highway.telekom.at...
> Liebe VB-Classic Gemeinde!
>
> Mit Hilfe von mciSendString spiele ich verschiedene Multimediadateien ab:
> MPEG2, MP3,WAV,AVI etc.
> Das funktionierte bislang ausgezeichnet.
> Nun erwarb ich den PCM-Recorder LS-10 von Olympus. Dessen WAV-Dateien
> lassen sich mit meinem Programm nicht abspielen.
Die Ursache ist gefunden:
Als ich von den WAV-Dateien eine CD brennen wollte klappte das überhaupt
nicht.
Die WAV-Dateien des Olympus LS-10 sind mit 24-Bits gesamplet.
Deshalb konnte weder Nero 6.0 noch der Mediaplayer 9 die Dateien auf eine
Audio-CD schreiben.
Das läßt sich auf 16 Bits ändern. Ein Ergebnis dieser geänderten Einstellung
muß ich noch prüfen.
Und mciSendString kann vermutlich in der Standardeinstellung die
24-Bits-Dateien nicht abspielen.
(warum VLC das trotzdem kann, obwohl es ebenfalls die winmm.dll verwendet
ist mir noch nicht klar)
Schreibt man die Dateien auf 16-Bits Sample Size um funktioniert alles
normal.
Vielleicht kann man mit mciSendString auch Einstellungen vornehmen. Das
werde ich noch zu klären versuchen.
Wenn ich etwas Neues weiß, melde ich mich wieder.
Wolfgang
No comments:
Post a Comment