一、首先需要注意的几点是:

  1.用记事本编写代码时,要保存为后缀名为.smil或.smi的文件,并且编码格式选择为UTF-8。

  2.打开.smil文件的播放器选择为:RealPlayer或是AmbulantPlayer,它们的下载地址分别是

          RealPlayer:https://www.realnetworks.com/products-services/realmedia-hd-suite/realplayer-hd

AmbulantPlayer:http://www.ambulantplayer.org/Download200.shtml

  3.smil学习的网址可以是:http://www.w3school.com.cn/smil/index.asp 和 http://79343654.iteye.com/blog/1328448等等。

  4.编写好的代码在播放器播放的过程中可能会产生一些多余的代码,这些代码一般在</smil>前面,要注意检查。

  5.在测试效果的过程中,不要频繁关闭RealPlayer,关闭多次它就打不开了,只能重启电脑才能重新打开(也许是我电脑的问题)。

二、代码

  基础知识在上面的学习网址之中都有,SMIL和HTML很相似,很好学习,所以我就直接上代码了。(所有要用的多媒体素材都保存在一个materials的文件中)

<smil>

<head>

   <layout>

     <root-layout width="1280"  height="720" background-color="white"/>

<region id="video_one" left="4" top="4" width="960" height="540" fit="meet" z-index="5"/>

      <region id="image_one" left="968" top="4" width="308" height="177" fit="meet"/>

<region id="image_two" left="968" top="185" width="308" height="177" fit="meet"/>

<region id="image_three" left="968" top="365" width="308" height="177" fit="meet"/>

<region id="text_one" left="4" top="547" width="1272" height="720" fit="meet"/>

        <region id="image_four" left="0" width="600" height="400" fit="meet"/>

   </layout>

</head>

<body>

  <par>

      <video src="materials/Sakamoto.rmvb" region="video_one" begin="0" dur="35" fill="freeze"/>

     <img src="materials/b.png" region="image_one" begin="36" end="56" fill="freeze"/>

      <audio src="materials/music1.mp3"  begin="35" end="56" />

       <img src="materials/c.png" region="image_two" begin="56" end="76"  fill="freeze"/>

<audio src="materials/music2.mp3"  begin="56" end="76"/>

      <img src="materials/d.png" region="image_three" begin="77" end="97"  fill="freeze"/>

<audio src="materials/music3.mp3"  begin="77" end="97"/>

<text src="materials/text1.txt" region="text_one" begin="0" end="35"/>

<text src="materials/text2.txt" region="text_one" begin="36" end="56"/>

<text src="materials/text3.txt" region="text_one" begin="56" end="76"/>

<text src="materials/text4.txt" region="text_one" begin="77" end="97"/>

  </par>

</body>

</smil>

以上代码实现的功能为:1.播放视频并显示说明文字。

           2.播放音乐,并同时显示与音乐对应的文字和图片。(画面中最大的那幅图是视频结束后定格的一帧)

<smil xmlns="http://www.w3.org/2001/SMIL20/Language">

<head>

   <layout>

    <root-layout width="1280"  height="720" background-color="white"/>

      <region id="image_four" left="0" top="272" width="308" height="177" fit="meet"/>

   </layout>

<transition id="fade1" type="fade" subtype="fadeToColor" dur="4s"/>  <transition id="fade2" type="fade" subtype="fadeFromColor" dur="4s"/>

<transition id="wipe1" type="slideWipe" subtype="fromTop" dur="4s"/>  <transition id="wipe2" type="waterfallWipe"  dur="4s"/>

</head>

<body>

    <seq>

     <img region="image_four" src="materials/a.png" dur="30">

      <animateMotion from="0 272" to="972 272" dur="30"/>

</img>

<img region="image_five" src="materials/e.png" width="1280" height="720">

<animate attributeName="height" from="360" to="720" fill="freeze" dur=10s"/>

</img>

<img src="materials/one.jpg"  tansIn="fade2" transOut="fade1" dur="15s"/>

<img src="materials/two.jpg"  tansIn="wipe1" transOut="wipe2" dur="15s"/>

</seq>

</body>

</smil>

  这段代码本来应该正常的展示出图片的移动,放大,淡入淡出和擦除的效果,但由于我的RealPlayer打开几次文件后就无法继续打开文件,我只能关掉RealPlayer,而这导致我只能不断地开关机,然而我的电脑开关机的速度都极其的慢,我在上面耗费了许多时间也始终没能把该.smil文件打开。加上接下来的一周我还得完成流媒体服务器的搭建,弄一个多媒体播放器,做一个音/视频编解码器(当然在这么短的时间内完成这些肯定要去借鉴别人的代码),总之,SMIL学习先暂时结束。

      

用SMIL语言编写一个简单的演示的更多相关文章

  1. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  2. 用 C 语言编写一个简单的垃圾回收器

    人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...

  3. C语言编写一个简单游戏

    感悟:这算是一个起点吧,我都大二了,还这么菜,才开始写游戏,这个游戏很简单,利用随机数猜大小! #include <stdlib.h> #include <stdio.h> # ...

  4. Java入门篇(一)——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  5. 手把手教你编写一个简单的PHP模块形态的后门

    看到Freebuf 小编发表的用这个隐藏于PHP模块中的rootkit,就能持久接管服务器文章,很感兴趣,苦无作者没留下PoC,自己研究一番,有了此文 0×00. 引言 PHP是一个非常流行的web ...

  6. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  7. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  8. 编写一个简单的Web Server

    编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...

  9. javascript编写一个简单的编译器(理解抽象语法树AST)

    javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...

随机推荐

  1. 三剑客之SED

    Sed功能说明      Sed是Strem Editor(流编辑器)缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行. [root@old ~]# sed --versio ...

  2. Orcle学习(一)

    exists"和"in"的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ...

  3. DB2操作命令

    本文详细汇总了DB2的常用操作命令,分享给大家.对于使用db2的朋友可以参考下. DB2数据库管理客户端从v9.7版本之后就不再带有控制中心了,而是使用 Data Studio Client.安装 D ...

  4. JQuery 插件之Ajax Autocomplete(ajax自动完成)搜索引擎自动显示下拉框

    平时用百度,谷歌搜索的时候 会有一个下 拉列表进行提示 这是一个非常好的功能 本文要介绍的这个JQuery 插件 名叫Ajax Autocomplete 顾名思义 ajax 也就是用ajax的方式获取 ...

  5. arp命令

    地址解析协议ARP用于将IP地址解析成MAC地址.当把数据包从一个计算机发送到另一个计算机的时候,计算机或路由器使用ARP请求来确定下一跳的MAC地址. MAC地址用于按跳发送数据包,直到达到最终目的 ...

  6. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  7. Socket为什么要翻译成套接字

    作者:陈振玥链接:https://www.zhihu.com/question/21383903/answer/64103663来源:知乎著作权归作者所有,转载请联系作者获得授权. 作为一条刻(wu) ...

  8. No permission to write APN settings: Neither user *** nor current process has android.permission.WRITE_APN_SETTINGS.

    在ICS40以前的版本中,如果程序需要设置APN,只需要在AndroidManifest文件中声明这个权限即可.在40的机器上运行则会抛出以下异常:java.lang.SecurityExceptio ...

  9. SecureCRT的安装

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT 是高度可定制的终端仿真器,适用于 In ...

  10. 谈谈对HTML语义化的理解

    什么是HTML语义化? HTML标签可以分为有语义的标签,和无语义的标签.比如table表示表格,form表示表单,a标签表示超链接,strong标签表强调.无语义标签典型的有<div>, ...