在 flex 中播放 mp4 声音
Play mp4 sound in flex
我正在研究播放 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 中播放此文件。它有效,但设计看起来很糟糕。
仅供参考:
音频文件格式为:
非常感谢任何帮助。
您不能像这样使用 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();
希望能帮到你。
我正在研究播放 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 中播放此文件。它有效,但设计看起来很糟糕。
仅供参考:
音频文件格式为:
非常感谢任何帮助。
您不能像这样使用 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();
希望能帮到你。