我正在播放播放mp4文件格式声音的音频播放器。
这个音频文件是用户录制的文件,稍后将在音频播放器中播放。
另一件事是mp4
文件网址为rtmp
而不是http
,如:
rtmp://domain/vod/mp4:foldername/filname.mp4
我做了以下事情:
<s:Button id="btnPlay" label="Play" click="Play_clickHandler(event)" />
AS
public var sound:Sound;
public var mySoundChannel:SoundChannel;
protected function Play_clickHandler(event:MouseEvent):void
{
sound = new Sound();
sound.addEventListener(Event.SOUND_COMPLETE, soundComplete);
var req:URLRequest = new URLRequest("rtmp://domain/vod/mp4:foldername/filname.mp4");
sound.load(req);
mySoundChannel = sound.play();
}
private function soundComplete(event:Event):void {
sound.load(new URLRequest("rtmp://domain/vod/mp4:foldername/filname.mp4"));
mySoundChannel = sound.play();
}
我尝试了上面的代码,但没有成功。它只播放mp3
个文件格式。
我可以用任何方式播放这个文件吗?
注意:我不想使用任何方法将文件转换为mp3文件格式。
我试图在VideoPlayer中播放此文件。它有效,但设计看起来很糟糕。
供参考:
音频文件格式为:
非常感谢任何帮助。
答案 0 :(得分:2)
您无法使用Sound
对象播放RTMP流的音频。
但要做到这一点,我认为最简单的方法是使用NetStream
对象并使用其receiveVideo()
功能,您只能接收音频流,而且您甚至不会需要任何视频播放器连接到它。
看看这个例子:
var server:String = 'rtmp://localhost/vod',
stream:String = 'mp4:video.mp4',
nc:NetConnection,
ns:NetStream;
function init(): void
{
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, on_NetStatus);
nc.connect(server);
}
function on_NetStatus(e:NetStatusEvent): void
{
if(e.info.code == 'NetConnection.Connect.Success'){
ns = new NetStream(nc);
ns.receiveVideo(false);
ns.play(stream);
}
}
init();
希望可以提供帮助。