2SIMPLE

我们已经回来

如何XHTML化多媒体对象

目前2SIMPLE没有办法通过XHTML测试主要有三个原因:
1、不同的DIV使用相同的ID标记
2、调用JavaScript的代码似乎不完美
3、页面中的Flash、MP3文件使用了EMBED标签

1准备在改版的时候解决,2可能要摸索一段时间,3已经解决了一部分。很多答案早就放在那里,只是等我们Google罢了,用XHTML代码嵌入SWF文件的解决方案几年前就有了:

<object type=”application/x-shockwave-flash” data=”container.swf?path=movie.swf”
width=”400″ height=”300″>
<param name=”movie” value=”container.swf?path=movie.swf” />
<img src=”noflash.gif” width=”400″ height=”300″ alt=”" />
</object>

上面这段代码怎么来的大家可以自己去通读此文档(这个网站挺有意思),总的来说这段代码符合XHTML标准,能够在IE、Mozilla等浏览器中运行。container.swf是用户需要自己建立的一个文件,因为如果没有这个文件,这段代码虽然一样能用,但是要整个电影下载结束才会开始播放。container.swf很容易建立,它只需要一个关键祯和这样一行代码:

_root.loadMovie(_root.path,0);

其实没有这个container问题也不大,现在的带宽下载几兆的Flash也不是什么大问题。Marcomeida注意到这个问题应该也不是一天两天了,但是它还在沿用以前的EMBED代码,包括其号称兼容XHTML的Dreamweaver MX,无商不奸啊。解决了这个问题我继续google嵌入MP3的办法,得到这个页面。事情看来比Flash要复杂的多,经过测试,Standards Version可以同时兼容IE6和Mozilla,前提是Mozilla安装过Quicktime之类的多媒体播放插件Specifying the media player方法也可以同时兼容IE6和Mozilla,但是我想必须是安装了MediaPlayer 2的(Windows)机器才能通过测试。如此说来,我更倾向于使用不指定播放器的Standards Version

<object type=”audio/mpeg” width=”200″ height=”50″ data=”demo.mp3″>
<param name=”src” value=”demo.mp3″ />
<param name=”filename” value=”demo.mp3″ />
<param name=”type” value=”audio/mpeg” />
This is MP3 file for IE/Mozilla.
</object>

这些方法好像都面临同一个缺点,和Flash一样,没有下载完全的话会有不能播放的情况出现,怎么做才是彻底的解决?目前只想到自己做一个Flash MP3播放器。对于MIDI、Java Applet,一样也有XHTML化解决方案……

Written by Datou

五月 25th, 2004 at 10:07 下午

Leave a Reply