[Red5] FlvPlayback
Hassan Beigi
h.beigi at web.de
Sun Jul 2 13:45:41 EDT 2006
Hi Eric,
i am not familiar with this component.
Here are 3 steps to fix the problem: The modifications are very dirty and
untested. It gives you only an idea how to fix it. I have changed the lines
commented with //NEW .
1)
Find the Flash 8 Classes on your machine:
Here is the german path to the file:
C:\Dokumente und Einstellungen\[User]\Lokale
Einstellungen\Anwendungsdaten\Macromedia\Flash
8\en\Configuration\Classes\mx\video
english path must be something like that:
C:\Documents and Settings\[User]\Local Settings\Applicationdata\
Macromedia\Flash 8\en\Configuration\Classes\mx\video
Or search for the file (VideoPlayer.as and NCManager.as) on your machine.
2) Open VideoPlayer.as
replace the following method:
private function _play():Void {
//ifdef DEBUG
//var debugString:String = "_play("
//if (arguments.length > 0) {
// debugString += arguments[0];
// if (arguments.length > 1) {
// debugString += ", " +
arguments[1];
// }
//}
//debugString += ")";
//debugTrace(debugString);
//debugTrace("_ncMgr.getStreamName() = " +
_ncMgr.getStreamName());
//endif
_startingPlay = true;
switch (arguments.length) {
case 0:
_ns.play(_ncMgr.getStreamName("flv"),
(_isLive) ? -1 : 0, -1); //NEW CODE - "flv" string as parameter
break;
case 1:
_ns.play(_ncMgr.getStreamName("flv"),
(_isLive) ? -1 : arguments[0], -1); //NEW CODE - "flv" string as parameter
break;
case 2:
_ns.play(_ncMgr.getStreamName("flv"),
(_isLive) ? -1 : arguments[0], arguments[1]); //NEW CODE - "flv" string as
parameter
break;
default:
throw new Error("bad args to _play");
}
}
3) Open NCManager.as
add the following variable:
private var _isMMServer:Boolean; //NEW CODE
repace the constructor:
public function NCManager() {
initNCInfo();
initOtherInfo();
//HB: VERY DIRTY CODE
_isMMServer = _level0.isMMServer; //NEW DIRTY CODE
// intervals
_timeoutIntervalId = 0;
_tryNCIntervalId = 0;
// actually calls setter
_timeout = DEFAULT_TIMEOUT;
}
Replace the following method:
public function getStreamName(type:String):String {
if (type==undefined || _isMMServer) return
_streamName; else return _streamName+"."+type; //NEW CODE
}
I hope it helps.
Bye,
Hassan Beigi
_____
Von: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] Im Auftrag
von Eric Pincus
Gesendet: Sonntag, 2. Juli 2006 19:01
An: Red5 at osflash.org
Betreff: Re: [Red5] FlvPlayback
Thanks - I'll try that as a workaround - but it's really a workaround for
what I'm already using as a workaround.
What my main question is - which I've yet to get any word in is.
Can I how can use the FlvPlayback control to connect to an FLV hosted by
Red5?
The workaround is to use the video object - but do I need to use a
workaround at all - I'd rather just use the FlvPlayback control.
_____
From: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] On Behalf
Of Hassan Beigi
Sent: Sunday, July 02, 2006 6:21 AM
To: Red5 at osflash.org
Subject: Re: [Red5] FlvPlayback
Hi Eric,
Try this very ugly code as workaround :-)
paused = false;
function Pause (eventOj:Object){
if (!paused) {
onEnterFrame = function () {
my_ns.seek (my_ns.time);
}
} else {
delete onEnterFrame;
}
paused = !paused;
}
_____
Von: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] Im Auftrag
von Eric Pincus
Gesendet: Sonntag, 2. Juli 2006 14:31
An: Red5 at osflash.org
Betreff: Re: [Red5] FlvPlayback
Thank you - but I'm not sure how that applies.
The following code is working with the video object - but pause
functionality is awkward - restarting 5-10 seconds earlier than where I
pause it
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://localhost/oflaDemo");
var my_ns:NetStream = new NetStream(my_nc);
my_video.attachVideo(my_ns);
my_ns.setBufferTime(1);
my_ns.play("downtown.flv");
btnPause.addEventListener("click", Pause);
function Pause(eventOj:Object)
{
my_ns.pause();
}
This is without the FlvPlayback control - with the video object and a single
button labeled btnPause.
I would PREFER to just just the FlvPlayback control using a skin so I don't
have to code for the various functions (play, pause, mute, volv)
Simply setting the contentPath of a FlvPlayback control to
"rtmp:://localhost/oflaDemo/downtown.flv" fails.
If I still need to use a NetStream object with the FlvPlayback control - how
do I wire the two together?
Thanks
_____
From: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] On Behalf
Of Hassan Beigi
Sent: Sunday, July 02, 2006 2:50 AM
To: Red5 at osflash.org
Subject: Re: [Red5] FlvPlayback
Hi Eric,
red5 needs the .flv extension for the NetStream.play Method:
FlashCom / MediaServer : stream.play ("filename",.)
Red5: stream.play ("filename.flv",.)
bye
_____
Von: Red5-bounces at osflash.org [mailto:Red5-bounces at osflash.org] Im Auftrag
von Eric Pincus
Gesendet: Sonntag, 2. Juli 2006 11:08
An: Red5 at osflash.org
Betreff: [Red5] FlvPlayback
Hey all,
So what is the verdict on the FlvPlayback object within flash?
I can't get it to work with Red5. I've seen a dozen questions on this very
subject around the net - but never an answer.
I know that with FMS - you need to have the main.asc file copied to the
application directory - that you need to have your media in the
streams\_definst_ directory, etc.
It works from FMS - but nothing from Red5.
All I'm trying to do is set up a simple flv streaming with FlvPlackback.
I've tried to set it up with a simple video object but when I use the pause
function - and then restart - the video drops back about 5-10 seconds.
Help if you can,
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/red5_osflash.org/attachments/20060702/e5d3a787/attachment-0001.htm
More information about the Red5
mailing list