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] 阅读(351)
评论(0) 编辑 收藏 所属分类:
FMS