Actionscript 3 无效音频文件的错误

Actionscript 3 无效音频文件的错误,actionscript-3,flash,audio,actionscript,Actionscript 3,Flash,Audio,Actionscript,我正在开发一个flash音频播放器,我得到了它,这样它就可以播放mp3文件了。现在,我想添加一个错误处理程序,这样我就可以知道我尝试播放的文件何时/是否无效。例如,如果尝试播放损坏的mp3文件,甚至是jpeg,它的行为就像播放一样,但什么也没有发生 我尝试添加一个IOError监听器,如\u sound.addEventListener(ioerrevent.IO\u ERROR,handleIOError),但这只能让我知道何时发生404错误或其他HTTP错误 下面是我用来播放音频的代码: _

我正在开发一个flash音频播放器,我得到了它,这样它就可以播放mp3文件了。现在,我想添加一个错误处理程序,这样我就可以知道我尝试播放的文件何时/是否无效。例如,如果尝试播放损坏的mp3文件,甚至是jpeg,它的行为就像播放一样,但什么也没有发生

我尝试添加一个IOError监听器,如
\u sound.addEventListener(ioerrevent.IO\u ERROR,handleIOError),但这只能让我知道何时发生404错误或其他HTTP错误

下面是我用来播放音频的代码:

_sound=new Sound();

_sound.addEventListener(IOErrorEvent.IO_ERROR,handleIOError);
_sound.addEventListener(ProgressEvent.PROGRESS,handleLoadProgress);

_urlRequest=new URLRequest(_url);
_sound.load(_urlRequest,createSoundLoaderContext());

_soundChannel=_sound.play(_position,0,createSoundTransform());

我已经尝试了我能想到的一切。有人知道我如何知道我尝试播放的文件何时不是有效的音频文件吗?任何变通方法都会很有帮助,即使它们涉及轮询属性。

您可以检查加载文件的前几个字节,并与mp3的文件格式规范进行比较(例如:)@LeeBurrows哇,这是我没有想到的主意。我得进一步调查一下。你知道mp3总是以
ID3
IHDR
开头吗?我似乎不知道那篇文章到底说的是什么结构。是的,我也不太清楚。这个稍微好一点:但我认为你需要做一些研究来弄清楚。但我有另一个想法(未经测试)。。。除了侦听进度+完成外,还侦听Event.ID3-当ID3信息可用时触发此命令。如果您在complete激发时没有id3事件,那么您知道它不是mp3文件。当然,这意味着加载整个文件,而通过检查标题,您可以停止不必要的下载。仅供参考:我目前决定检测无效的mp3不是我项目的关键部分,因为我可以检测到服务器错误。不过,我将来可能会改变主意。