10 Stimmen

Wiedergabe von 24bit Audio nicht möglich

Ich versuche, eine 24-Bit-Audiodatei mit meiner AutoHotkey-Anwendung abzuspielen. Es verwendet einfach SoundPlay . Windows 7 hat kein Problem, aber Windows XP-Benutzer können die 24-Bit-Dateien nicht abspielen.

Les Dokumentation sagt:

Alle Windows-Betriebssysteme sollten .wav-Dateien abspielen können. Allerdings können andere Dateien (.mp3, .avi, usw.) sind jedoch möglicherweise nicht abspielbar sein, wenn die richtigen Codecs oder Funktionen nicht auf dem Betriebssystem installiert sind.

Mögliche Abhilfemaßnahmen, die in dem Artikel erwähnt werden Wiedergabe von 24-Bit-WAV-Dateien in Windows Media Player beheben das Problem für Windows Media Player, aber nicht für Autohotkey:

Schritt-für-Schritt-Anleitung

  1. Herunterladen Älterer HD-Audiofilter
  2. regsvr32.exe AudioTypeConvert.ax
  3. Abspielen der 24bit-Datei im Windows Media Player (funktioniert) und AHK (kein Ton).
  4. regsvr32.exe /u AudioTypeConvert.ax zum Deinstallieren

Erwartetes Verhalten: fehlerfreie Wiedergabe der Audiodatei sowohl im Windows Media Player als auch in den AutoHotkey-Apps. Tatsächliches Verhalten: Die Audiodatei wird nur im Windows Media Player fehlerfrei wiedergegeben und nicht in AutoHotkey Apps unter Windows XP.

Weitere Ermittlungen

Wie in den AutoHotKey-Foren erwähnt, verwendet SoundPlay mciSendString unter der Haube und mehr Informationen über die Art des Fehlers können durch direkten Aufruf gewonnen werden.

Bei Verwendung des alternativen DLL-Aufrufs mciSendString erhalte ich Fehlermeldung 320 das entspricht MCIERR_WAVE_OUTPUTSINUSE

Alle Wellenformgeräte, die Dateien im aktuellen Format abspielen können, sind in Gebrauch. Warten Sie, bis eines dieser Geräte frei ist, und versuchen Sie es dann erneut.

Wie kann ich 24-Bit-Audiodateien unter Windows XP in meiner AutoHotkey-Anwendung abspielen?

SoundPlay-basierte Test-App ( herunterladen )

#NoEnv 
SetWorkingDir %A_ScriptDir%
FileSelectFile, f
SoundPlay, %f%
Msgbox, You should hear audio - except for 24bit wave files under Windows XP.

MCI-basierte Test-App ( herunterladen )

#NoEnv 
SetWorkingDir %A_ScriptDir%
FileSelectFile, f
TryPlaySound(f)
Msgbox, You should hear audio - except for 24bit wave files under Windows XP.

; If SoundPlay does not work TryPlaySound
TryPlaySound( mFile ) 
{ 
    ; SKAN  www.autohotkey.com/forum/viewtopic.php?p=361791#361791
    VarSetCapacity( DN,16 ), DLLFunc := "winmm.dll\mciSendString" ( A_IsUnicode ? "W" : "A" )
    DN := DllCall(DLLFunc, Str, "play " """" mFile """" "", Uint, 0, Uint, 0, Uint, 0)
    Return DN
}

1voto

Russell Borogove Punkte 17573

Ich würde die 24-Bit-Datei in eine 16-Bit-Datei konvertieren, wenn das überhaupt möglich ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X