如何使用PHP测试flash动画是否播放声音?

时间:2011-10-25 23:35:15

标签: php flash audio

我正在使用PHP开发一个Web应用程序,我需要测试一个网站的页面是否有背景音乐。正如你们许多人所知,这是标签的列表(我想念某人?),背景声音可以插入网页:

  1. 嵌入
  2. 对象
  3. BGSOUND
  4. 音频(HTML5)
  5. 在检查是否存在背景音频时,由于标签bgsoundaudio的存在很容易,测试flash动画是否有声音并不是那么容易(至少对我而言) 。 我知道我可以检查embed属性中的标记src是否与sound.mp3类似,但如何测试声音是否完全嵌入到Flash动画中?

    我经常搜索以找到答案,但不幸的是我找不到答案。

    感谢所有回答我问题的人。

1 个答案:

答案 0 :(得分:3)

SWF文件由许多不同的标记组成,每个标记描述不同类型的内容;位图图像,ActionScript,形状,字体和声音。因此,我们可以下载SWF文件,阅读标签,并查看是否有任何与声音相关的标签(对于音乐,您将专门查找与流声音相关的标签)。

要做到这一点,你会使用一些SWF解析库(我不知道任何PHP,但我确定它们存在),或者你可以基于specification实现自己的。 / p>

但是,这只能检测声音实际上是嵌入的情况,这可能不是这种情况 - 声音可以从外部文件流式传输,并完全在ActionScript中处理(和事实上,这并不是那么罕见。)

要处理 案例,ActionScript代码可以反汇编,然后可以检查指令以查看它们是否引用任何特定于音频的ActionScript类(我不要不知道字节码是否足以知道如何检查;我只知道它可以完成。如果是这样,那么你知道SWF有与音频的某些连接(但它不一定是实际的背景音乐)。

当然,如果你想要一个万无一失的解决方案,你还必须考虑SWF可以加载其他SWF - 执行播放的SWF文件可能不是你下载的那个,所以你需要以某种方式找到这些SWF文件并下载以及,然后通过相同的过程运行它们......

正如您所看到的,这可能很快变得非常非常复杂,因此实际上无法确保100%的准确性。您必须自己确定您的检测需要多准确(并且通过扩展,您愿意花费多少精力)。