首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不可能播放24位音频

不可能播放24位音频
EN

Stack Overflow用户
提问于 2011-05-17 14:59:25
回答 1查看 1.8K关注 0票数 10

我试着用我的AutoHotkey应用程序播放一个24位的音频文件。它只使用SoundPlay。Windows 7没有问题,但是Windows用户不能播放24位文件。

文档说:

所有的Windows OSes都应该能够播放.wav文件。但是,其他文件(.mp3、.avi等)如果操作系统上没有安装正确的编解码器或功能,则可能无法播放。

在文章如何在中播放24位WAV文件中提到的可能的修复方法是修复Windows的问题,但是对于自动热键没有修复:

一步一步指南

  1. 下载遗留高清音频滤波器
  2. regsvr32.exe AudioTypeConvert.ax
  3. 播放24位文件窗口媒体播放器(作品)和AHK (无声音)。
  4. regsvr32.exe /u AudioTypeConvert.ax卸载

预期行为:在和AutoHotkey应用程序中都没有错误的音频文件回放。实际行为:音频文件回放,仅在中没有错误,在Windows下的AutoHotkey应用程序中不播放。

进一步调查

正如在AutoHotKey论坛中所提到的,SoundPlay正在使用遮罩下的mciSendString,通过直接调用它可以获得关于错误本质的更多信息。

使用mciSendString替代DLL调用,我得到错误信息320,它对应于乌图西努斯

所有可以以当前格式播放文件的波形设备都在使用中。等待这些设备中的一个空闲,然后再试一次。

如何在我的AutoHotkey应用程序中播放Windows中的24位音频文件?

基于SoundPlay的测试应用程序 (下载)

代码语言:javascript
复制
#NoEnv 
SetWorkingDir %A_ScriptDir%
FileSelectFile, f
SoundPlay, %f%
Msgbox, You should hear audio - except for 24bit wave files under Windows XP.

基于MCI的测试应用程序 (下载)

代码语言:javascript
复制
#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
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-31 22:08:04

如果这是可行的话,我会把24位文件转换成16位文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6032795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档