I am working on audio player which play sound of mp4 file format.
This audio file are of recorded files by user, which will play in audio player later.
And another thing is mp4
file url is rtmp
not http
which is like:
rtmp://domain/vod/mp4:foldername/filname.mp4
I have done following things:
<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();
}
I Have tried above code but didn't succeed. It played only mp3
file format.
Any way i can play this file?
Note: I do not want to convert file to mp3 file format using any method.
I have tried to play this file in VideoPlayer. It works but design looks bad.
FYI:
Audio file format is:
Any help is greatly appreciated.
You can not use a Sound
object to play the audio of an RTMP stream like that.
But to do that, I think that the easiest way is to use a NetStream
object and with its receiveVideo()
function, you can receive just the audio stream, also you don't even need any video player to be attached to it.
Take a look on this example :
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();
Hope that can help.