Estoy tratando de reproducir un archivo de audio de 24 bits con mi aplicación AutoHotkey. Solo usa SoundPlay. Windows 7 no tiene ningún problema, sin embargo, los usuarios de Windows XP no pueden reproducir los archivos de 24 bits.Reproducción de audio de 24 bits no posible
El documentation dice:
Todos los sistemas operativos de Windows debe ser capaz de reproducir archivos .wav . Sin embargo, otros archivos (.mp3, .avi, etc.) pueden no ser reproducibles si los códecs correctos o las características no están instalados en el sistema operativo.
correcciones
posibles mencionados en el artículo How to play 24bit WAV files in Windows Media Player están arreglando el problema para Reproductor de Windows Media, sin embargo, pero no para autohotkey:
Paso a paso guía
- Descargar Legacy HD Audio Filter
- regsvr32.exe AudioTypeConvert.ax
- Reproducir archivo de 24 bits en windows media playe r (funciona) y AHK (sin sonido).
- regsvr32.exe/u AudioTypeConvert.ax desinstalar
comportamiento esperado: playsback archivo de audio sin errores en Windows Media Player y AutoHotkey Aplicaciones. Comportamiento real: reproducción de archivos de audio sin errores solo en el Reproductor de Windows Media y no se reproduce en las aplicaciones de AutoHotkey bajo Windows XP.
Investigación Adicional
Como se mencionó en los foros AutoHotKey SoundPlay está utilizando mciSendString bajo el capó y más información sobre la naturaleza del error se puede ganar llamando directamente.
El uso de la llamada DLL alternativa mciSendString consigo error message 320 que corresponde a MCIERR_WAVE_OUTPUTSINUSE
Todos los dispositivos de forma de onda que pueden reproducir archivos en el formato actual están en uso. Espere hasta que uno de estos dispositivos sea gratuito; vuelva a intentarlo.
¿Cómo reproduzco los archivos de audio de 24 bits en Windows XP en mi aplicación AutoHotkey?
aplicación de prueba basada SoundPlay (download)
#NoEnv
SetWorkingDir %A_ScriptDir%
FileSelectFile, f
SoundPlay, %f%
Msgbox, You should hear audio - except for 24bit wave files under Windows XP.
aplicación de prueba basada MCI (download)
#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
}
Las ideas para mejorar la pregunta en sí son aceptadas felizmente en los comentarios. – svandragt
Cómo mejorar algo que es tan perfecto. +1 para los detalles proporcionados en cuestión. –