检测mp3';文件';是flash中的mp3流(动作脚本3,AS3)

检测mp3';文件';是flash中的mp3流(动作脚本3,AS3),flash,stream,mp3,detection,Flash,Stream,Mp3,Detection,我已经做了一个播放器,可以播放mp3,并且做得很好(在flash AS3中,构建一个安全稳定的播放器不是一件容易的事情)。它还可以播放多个电台的mp3广播流。mp3流的“问题”是,我不知道如何在flash中检测它是否是mp3流(在internet和adobe网站上找不到文档)。我也不知道缓冲这些流的最好方法是什么 无论如何,我已经做了一些复杂的检测方法,通过检查getBytesLoaded()和sound.length在(长)段时间内的变化来确定它是一个流。这是为了“告诉”播放器在流/文件完成时

我已经做了一个播放器,可以播放mp3,并且做得很好(在flash AS3中,构建一个安全稳定的播放器不是一件容易的事情)。它还可以播放多个电台的mp3广播流。mp3流的“问题”是,我不知道如何在flash中检测它是否是mp3流(在internet和adobe网站上找不到文档)。我也不知道缓冲这些流的最好方法是什么

无论如何,我已经做了一些复杂的检测方法,通过检查
getBytesLoaded()
sound.length
在(长)段时间内的变化来确定它是一个流。这是为了“告诉”播放器在流/文件完成时不要等待,或者在文件损坏时跳过文件。这种检测方法的问题是连接速度慢或连接速度快(两者都有副作用)

例如,当连接速度较慢时,检测方法会失败,因为它认为该文件是一个流;当连接速度较快时(或Chrome-预加载流的速度比Firefox快),检测方法会认为该文件已损坏,会跳过播放并启动下一个文件

这一切都不容易解释,但主要的问题是:我能在流的开头(打开后)看到/检测到它是一个mp3流,这样我就可以跳过我愚蠢的“guess-is-it-a-file-or-stream-test”了吗


对不起,我今天的英语不好,但我必须解决这个问题。有人知道这个问题的稳定解决方案吗?我已经尝试了头查找,但不能依赖于此(找到了太多不同的服务器头)。

抱歉,没有办法这样做,因为MP3文件和MP3流之间没有区别-它们是完全相同的数据。但是,如果您碰巧有一个文件描述符或另一个程序向您的播放机发出特定的响应,以确认要发送的数据的大小是已知的,那么您可以将该响应视为一个文件。

为什么和什么-Cody Gray编辑了我的文本好的,谢谢。FlashAS3在某些方面很好,但也很糟糕,您必须通过代码分配来完成简单的任务。无论如何,我通过给streams一个扩展名为.astrm(带有mod rewrite)的文件名并重定向到原始流解决了这个问题。通过检查文件扩展名,玩家知道/假设它是一个流。这不是一个理想的解决方案,但目前它仍然有效。有谁有更好的解决办法吗?