4、链接制作
传统的流媒体的最大的一个弊端是没有交互性(Interaction)。现在如日中天的flash本质上就是一种可交互性的流!由此可见可交互性的流的市场潜力。而SMIL是解决大部分流媒体交互性的最好的工具!这部分要求大家必须掌握,如果没有的话,那么我们学习SMIL就失去了意义。因为这里是SMIL的主要特色(与其他的视频编辑软件相比较),就好像指针是C语言的特色一样。
(1)< a>< /a>标记
运行下面这个程序:
< smil>
< head>
< layout>
< root-layout width="300" height="300"/>
< region id="videoregion" top="0" left="0" width="300" height="300"/>
< layout>
< /head>
< body>
< a href="1.rm">
< video src="videotest.rm" region="videoregion"/>
< /a>
< /body>
< /smil>
正常情况下,我们看到播放器播放videotest.rm,如果我们把鼠标放到正在播放的videotest.rm上面,鼠标将有指针形状变为小手形状。单击鼠标左键,播放器播放将停止播放videotest.rm而播放1.rm这个文件。这里我们就成功的创建了一个很简单的链接。<a></a>属性就是用于链接标记,href表示的是所要链接的文件。这种方法非常简单,我们就不做过多的介绍。
如果我们要创建更加复杂的链接,我们就要用到下面的这个属性。
(2)< anchor>属性
将上例中的< body>< /body>换成下面这段代码,看看效果是不是有区别?
< body>
< video src="videotest.rm" region="videoregion">
< anchor href="1.rm"/>
< /video>
< /body>
我们看到的效果是完全一样的!那么<anchor>属性不就多余了吗? 那是不会的!JJ请看:
a、 分时断链接
考虑这样一个问题:我们要在0~10秒链到一个文件,10~20秒链到另一个文件,该怎么办?看我们的:
< body>
< video src="1.avi" region="videoregion">
< anchor href="1.jpg" begin="0s" end="10s" >
< anchor href="videotest.rm" begin="10s" end="20s" />
< /video>
大家将看到的效果:播放器播放1.avi,在0~10秒链到1.jpg,在10~20秒链到videotest.rm。警告:dur、clip-begin和clip-end这里不支持!
B、链接部分SMIL
我们的链接可以链接的文件很多,几乎所用的多媒体片断都可以。*.smil和*.html也可以。但是,下面我们要讨论的是如何链接部分SMIL。请看例子。
第一个SMIL文件,取名test11.smil
< smil>
< head>
< layout>
< root-layout width="400" height="300"/>
< region id="videoregion" top="0" left="0" width="400" height="300" fit="meet"/>
< /layout>
< /head>
< body>
< video src="1.avi" region="videoregion">
< anchor href="test11app.smil#testlink"/>
< /video>
< /body>
< /smil>
第一个SMIL文件,取名test11app.smil
< smil>
< head>
< layout>
< root-layout width="400" height="300"/>
< region id="videoregion" top="0" left="0" width="400" height="300" fit="meet"/>
< /layout>
< /head>
< body>
< video id="testlink" src="1.avi" clip-begin="150" region="videoregion"/>
< /body>
< /smil>
大家一定看出来了!我就是在test11app.smil中为我们要链接的那部分内容设上id,然后在test11.smil中的链接中用“#”来指向该标记id。应用的很多的时候是组内内容。我们把test11app.smil修改为:
< body>
< par id="testlink">
< video src="1.avi" clip-begin="150" region="videoregion"/>
< /par>
< /body>
到这里,链接可以说已经很完美了。但是,如果要锦上添花,那么下面这个属性是必不可少的。
(3)coords属性
将上面的<anchor href="1.rm"/>代码修改为:
< anchor href="1.rm" coords="0, 0,150,300"/>
或者:
< anchor href="1.rm" coords="0%, 0%,50%,100%"/>
运行,看看效果。JJ我们看到左半部分有链接效果,而右半部分却没有!这是我们采用了坐标规定链接区的缘故。coords属性值的第一、二个数分别表示的是链接区的左上角点的水平(left)和垂直(top)坐标;第三、四个数分别表示的是链接区的右下角点的水平(left)和垂直(top)坐标。上面用的是像素点的绝对定义方法,下面用的是比例的相对定义方法。喜欢哪一个就看你的喜好了。
(5)链接注意
我们的演示最后基本上都要放到服务器上。因此,文件的位置的规定就非常重要,如果文件位置出错,那么播放器将找不到文件而不能播放。这是我们最不希望看到的!下面我们就来讨论这个问题。
A、创建基地址
看下面的代码:
< head>
< meta name="base" content="rtsp://abc.5dmedia.com/"/>
< /head>
上面就是在< head>< /head>中用附加信息的方式规定了整个smil文件的基地址为rtsp://abc.5dmedia.com/。规定了基地址以后,我们在用该地址下的文件的时候,就只需要给出路径就可以了。例如:
< body>
< video src="video/first.rm"/>
< video src=" video /second.rm"/>
< audio src="rtsp:// abc.mysite.com:554/audio/test.mp3"/>
< img src="http// 收藏此页到365Key