Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以检测flash电影是否也包含(播放)声音?_Flash_Audio - Fatal编程技术网

是否可以检测flash电影是否也包含(播放)声音?

是否可以检测flash电影是否也包含(播放)声音?,flash,audio,Flash,Audio,有没有办法检测flash电影是否包含任何声音或正在播放任何音乐? 如果这可以在webbrowser(来自另一个flash对象的actionscript、javascript等)中完成,并且可以在flash电影开始播放之前完成,那就太好了 然而,我怀疑这完全是可能的,因此任何其他(可编程)解决方案也会受到赞赏是的,当然是在服务器端。客户端?我不知道。(我是服务器端的那种人。) 在服务器端,必须解析文件、读取标题和/或查找音频帧。(我自己已经将一个haskel FLV解析器移植到Java中用于索引目

有没有办法检测flash电影是否包含任何声音或正在播放任何音乐?
如果这可以在webbrowser(来自另一个flash对象的actionscript、javascript等)中完成,并且可以在flash电影开始播放之前完成,那就太好了


然而,我怀疑这完全是可能的,因此任何其他(可编程)解决方案也会受到赞赏

是的,当然是在服务器端。客户端?我不知道。(我是服务器端的那种人。)

在服务器端,必须解析文件、读取标题和/或查找音频帧。(我自己已经将一个haskel FLV解析器移植到Java中用于索引目的,还有其他解析实用程序。这是可能的。)

有血淋淋的细节。查看FLV格式部分的FLV标题表

FIELD       DATA TYPE      EXAMPLE                  DESCRIPTION
 Signature   byte[3]        “FLV”                    Always “FLV”
 Version     uint8          “\x01” (1)               Currently 1 for known FLV files
 Flags       uint8 bitmask  “\x05” (5, audio+video)  Bitmask: 4 is audio, 1 is video
 Offset      uint32-be      “\x00\x00\x00\x09” (9)   Total size of header (always 9 for known FLV files) 


编辑:我的客户端使用Flash进行编码是不存在的,但我相信您的代码可能会捕获onMetaDataLoad事件。这对你来说可能有点晚了,但也许已经足够好了?

你是在问关于FLV视频文件还是SWF中的Flash“电影”的问题吗

澄清一下,FLV是Flash视频格式(或任何缩写),常规Flash电影/应用程序/横幅将是SWF。这些是非常不同的文件格式。

有了它,您可以做您想做的事情。在开始播放之前,您可以分析FLV头的字节(使用byteArray.readByte()并参考规范),以确定是否打开音频标志。由于FLV报头几乎是立即加载的,因此不会对用户造成任何不便的延迟

对于SWF来说,这是一个很大的骗局——我很确定,事先确定SWF是否在某处播放音频是不容易的。一种方法是查看SWF在库中定义了哪些资产,但SWF也可以加载一个外部音频文件(甚至通过一些黑客或Flash player 10中的新API生成)。如果swf是用户提交的(或者类似的东西,超出了您的直接控制),我认为这是一条危险的道路