我正在工作的音频播放器,播放声音的mp4文件格式。
此音频文件是由用户录制的文件,稍后将在音频播放器中播放。
另一件事是mp4
文件url是rtmp
而不是http
,类似于:
rtmp://domain/vod/mp4:foldername/filname.mp4
我做了以下事情:
<s:Button id="btnPlay" label="Play" click="Play_clickHandler(event)" />
作为:
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中播放这个文件。它工作,但设计看起来很糟糕。
FYI:
音频文件格式是:
任何帮助都是非常感谢的。
发布于 2015-12-19 14:20:43
您不能使用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();
希望能帮上忙。
https://stackoverflow.com/questions/34370377
复制相似问题