首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在flex中播放mp4声音

在flex中播放mp4声音
EN

Stack Overflow用户
提问于 2015-12-19 11:49:40
回答 1查看 252关注 0票数 0

我正在工作的音频播放器,播放声音的mp4文件格式。

此音频文件是由用户录制的文件,稍后将在音频播放器中播放。

另一件事是mp4文件url是rtmp而不是http,类似于:

代码语言:javascript
运行
复制
rtmp://domain/vod/mp4:foldername/filname.mp4

我做了以下事情:

代码语言:javascript
运行
复制
<s:Button id="btnPlay" label="Play" click="Play_clickHandler(event)" />

作为:

代码语言:javascript
运行
复制
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:

音频文件格式是:

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-19 14:20:43

您不能使用Sound对象来像那样播放RTMP流的音频。

但要做到这一点,我认为最简单的方法是使用NetStream对象,使用它的receiveVideo()功能,您可以只接收音频流,甚至不需要任何视频播放器连接到它。

看一下这个例子:

代码语言:javascript
运行
复制
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();

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34370377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档