随笔 - 8  文章 - 55  trackbacks - 0
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

朋友的Blog

最新评论

阅读排行榜

评论排行榜

FlashCom发布和播放MP3
播放MP3文件
我们知道,Flash中默认的流式播放格式是Flv格式,但是在应用程序中,你可以通过客户端脚本来播放MP3音频文件和ID3信息,并使用服务器端脚本发布到stream流。
你需要上传MP3文件到服务器端的/streams/application_instance目录(Macromedia FCS MX 1.5 在录制视频流的时候会自动创建 streams 目录,如果不存在,你也可以手动创建)。例如你有个名为CDPlayerApp应用程序,你可以上传MP3文件到/applications/CDPlayerApp/streams/application_instance目录。
通过设定共享目录,你还可以在其它应用程序之间共享MP3。
找到Vhost.xml文件中的节点,在中添加需要共享的目录,如:
foo;c:\data
表示所有含有foo名称的目录都会被定向到c:\data目录,如foo/bar会被定向为c:\data\bar.flv。
详细的Vhost.xml说明可以参考FlashCom管理手册中相关部分。
然后,通过Stream.play指令指定播放的路径和想要播放的MP3文件。为了播放MP3文件,我们需要使用 NetStream对象的play方法,或者使用MC对象的attachAudio方法,特别需要注意的是,在播放文件前面要加上mp3播放标识前缀 mp3:,我们来看代码示例:
引用:
1 : //非共享方式播放
2 : vidObj.attachVideo(mystream);
3 : mystream.play( 'mp3:bolero' );
4 : //文件bolero.mp3在FCS服务器的 C:\mp3_files 目录下面
5 : //该目录在vhost.xml中被映射到虚拟目录 mp3dir
6 : movieObj.attachAudio(mystream2);
7 : mystream2.play( 'mp3:mp3dir/bolero' );

提示: 在使用 NetStream.play 方法的时候如果不指定视频或音频格式,会默认为FLV格式, 所以在播放MP3的时候,你必须指定格式播放。也就是说,flv:granada和granada都会播放文件granada.flv,但是mp3:bolero只会播放文件bolero.mp3。注意,这里播放的文件都在服务器端。

要播放MP3文件的ID3信息,必须使用播放前缀id3:并定义相应的回调函数来捕捉id3数据。例如,显示bolero.mp3文件的ID3 信息:

引用:
1 : //displays the ID3 tag of bolero.mp3
2 : mystream.play( 'id3:bolero' );
3 : //callback function to capture the ID3 data. Data will be displayed with
4 : //'info.' preceding the data from the tag, for example, info.songtitle.
5 : mystream.onId3 = function (info){
6 : for (i in info){
7 : trace(i + ':' + info[ i ]);
8 : }
9 : }

支持的MP3 ID3信息的版本
FlashCom server 1.5 支持UTF-8, UTF-16, and ISO-8859-1 格式的 1.0, 2.3和 2.4.版本的ID3信息,并且只支持文本数据,例如:歌曲名、作者、备注和录制时间等。

使用服务器端脚本
你还可以使用服务器端的Stream对象来播放MP3和获取MP3文件的长度,更详细的可以参考服务器端脚本参考中的Stream.play and Stream.length
要删除MP3文件可以使用Application.clearStreams方法,
下面来看一个例子,通过Stream.play方法来发布MP3:
引用:
01 : // Set up the server stream
02 : application.myStream = Stream.get( 'music' );
03 : if (application.myStream)
04 : {
05 : // Publish the MP3 file bolero.mp3 to the stream 'music'
06 : // Use the mp3: prefix in front of the stream name and specify 0 for the
07 : startTime parameter to indicate the server should play the recorded stream
08 : bolero.mp3
09 : application.myStream.play('mp3:bolero', 0, -1);
10 : }

使用 Stream.play 方法来捕获和播放 ID3 信息,请参考下面的代码示例:
引用:
01 : // Set up the server stream
02 : application.myStream = Stream.get( 'description' );
03 : application.myStream.onId3 = function(info)
04 : {
05 : for (i in info)
06 : {
07 : trace(i + ': ' + info[ i ]);
08 : }
09 : }
10 : if (application.myStream)
11 : {
12 : // Publish the ID3 text tag data of bolero.mp3 to a stream 'description'.
13 : // Use the id3: prefix in front of the stream name and specify 0 for the
14 : startTime parameter
15 : application.myStream.play( 'id3:bolero', 0, -1);
16 : }
posted on 2006-06-16 11:25 blog搬家了--[www.ialway.com/blog] 阅读(353) 评论(0)  编辑  收藏 所属分类: FMS

只有注册用户登录后才能发表评论。


网站导航: