Bha cara, FMS é muito melhor.
Vantagens:
- Facilidade de particionar o vídeo(Criar indices);
- Facilidade para deslocar a qualquer ponto do vídeo;
- Pode-se utillizar o componente vídeo(è muito mais aconselhável);
- E um monte de outros.
No RTMP não use o componente VideoDisplay, ao invés utilize o componente
Video.
*Eduardo Kraus*
Desenvolvedor
[email protected]
http://blog.mxml.com.br
2009/3/2 Wescley <[email protected]>
>
> Posso usar os dois, qual você aconselha. Você já viu alguma
> documentação sobre as vantagens de usar um ou outro.
>
> Tenho tanto uma licença do FMS quanto posso usar HTTP.
>
>
> On 28 fev, 22:22, Eduardo Kraus <[email protected]> wrote:
> > Você esta usando RTMP ou HTTP?
> >
> > 2009/2/26 Wescley <[email protected]>
> >
> >
> >
> > > Fonte do video display
> >
> > > <mx:VideoDisplay volume="{volumeSliderConferencia.value}"
> > > autoPlay="false" live="true" x="10" y="0" id="videoPlayerConferencia"
> > > width="352" height="240" backgroundColor="#965252"
> > > maintainAspectRatio="false" borderStyle="solid" borderThickness="6"
> > > borderColor="#A9A4A4"/>
> > > <mx:ApplicationControlBar width="352"
> > > id="controlMenu" top="240"
> > > left="10" fillAlphas="[1.0, 1.0]" fillColors="[#FDFBFB, #767474]"
> > > themeColor="#000000" alpha="0.42" color="#050606">
> > > <mx:Button
> > > id="confVideoPlayPauseButton" />
> > > <mx:Label text="status:
> > > {videoPlayerConferencia.state}"/>
> > > <mx:Spacer
> width="100%"/>
> > > <mx:Image width="16" height="16"
> > > source="icones/
> > > VolumeNormalRed.png"/>
> > > <mx:HSlider
> > > id="volumeSliderConferencia" liveDragging="true"
> > > value=".75" minimum="0" maximum="1" height="34" width="72"/>
> > > </mx:ApplicationControlBar>
> > > <mx:Canvas x="10" y="233" width="352"
> > > height="9" alpha="1.0"
> > > backgroundAlpha="1.0" backgroundColor="#A9A4A4" borderColor="#A9A4A4"
> > > borderStyle="solid">
> > > </mx:Canvas>
> > > <mx:HDividedBox left="370" right="10"
> > > top="0" bottom="10">
> > > <mx:Panel layout="absolute"
> > > title="Chat" width="80%"
> > > height="100%" borderColor="#A9A4A4">
> > > <mx:TextArea
> > > id="messageArea" wordWrap="true" editable="false"
> > > enabled="true" left="0" right="0" bottom="41" top="0"
> > > borderStyle="none"/>
> > > <mx:TextInput left="4"
> > > bottom="3" right="73" fontSize="12"
> > > borderStyle="inset" id="sendMessageInput" text="Olá !"/>
> > > <mx:Button
> label="Enviar"
> > > right="4" bottom="5"
> > > id="confSendButton" click="sendMessage()"/>
> > > </mx:Panel>
> > > </mx:HDividedBox>
> > > <mx:Panel layout="absolute" id="usuario"
> > > title="Usuários"
> > > width="352" left="10" top="293" bottom="10" borderColor="#A9A4A4">
> > > <mx:List id="usersList"
> > > borderStyle="none" left="10" top="0"
> > > bottom="0" right="0"/>
> > > </mx:Panel>
> >
> > > // ActionScript file que controla a videodisplay
> >
> > > import flash.events.MouseEvent;
> >
> > > import mx.events.VideoEvent;
> > > import mx.formatters.DateFormatter;
> > > import mx.rpc.events.FaultEvent;
> > > import mx.rpc.events.ResultEvent;
> > > import mx.rpc.http.mxml.HTTPService;
> >
> > > private var videoLength:String;
> > > private var start:Date;
> > > private var timeDisplayFormatter:DateFormatter;
> > > private var seekTo:Number;
> >
> > > private var playlist:XMLList;
> > > private var playlistCursor:uint;
> >
> > > [Bindable]
> > > private var videoFileTotalBytes:Number;
> >
> > > public function stopGaleria():void{
> > > if(myVideoDisplay.playing){
> > > myVideoDisplay.pause();
> > > }
> >
> > > }
> > > public function startGaleria():void{
> > > videoFileTotalBytes = this.myVideoDisplay.bytesTotal;
> > > start = new Date("1/1/2000");
> > > timeDisplayFormatter = new DateFormatter();
> >
> > > this.myVideoDisplay.addEventListener(VideoEvent.READY,
> videoReady);
> > > this.myVideoDisplay.addEventListener(VideoEvent.COMPLETE,
> > > videoComplete);
> > > this.myVideoDisplay.addEventListener(VideoEvent.PLAYHEAD_UPDATE,
> > > updateTimeDisplay);
> >
> > > this.btn_next.addEventListener(MouseEvent.CLICK,
> > > playlistControlsHandler);
> > > this.btn_previous.addEventListener(MouseEvent.CLICK,
> > > playlistControlsHandler);
> > >
> btn_playToggle.addEventListener(MouseEvent.CLICK,togglePlayback);
> > > btn_stopToggle.addEventListener(MouseEvent.CLICK,toogleStop);
> >
> > > loadPlaylist();
> > > }
> >
> > > private function playlistControlsHandler(event:MouseEvent):void{
> > > switch(event.currentTarget.label){
> > > case 'Next':
> > > if(playlistCursor<playlist.length() -1){
> > > if(myVideoDisplay.playing){
> > > myVideoDisplay.pause();
> > > }
> > > this.myVideoDisplay.playheadTime = 0;
> > > playlistCursor ++;
> > > playVideo();
> > > }
> > > break;
> > > case 'Prev':
> > > if(playlistCursor - 1>=0){
> > > if(myVideoDisplay.playing){
> > > myVideoDisplay.pause();
> > > }
> > > this.myVideoDisplay.playheadTime = 0;
> > > playlistCursor --;
> > > playVideo();
> > > }
> > > break;
> > > default:
> > > break;
> > > }
> > > }
> >
> > > private function loadPlaylist():void{
> >
> > > playlistCursor = 0;
> > > var playlistService:HTTPService = new HTTPService();
> > > playlistService.url = "galeria/playlist.xml";
> > > playlistService.resultFormat = "xml";
> > > playlistService.showBusyCursor = true;
> > > playlistService.addEventListener(ResultEvent.RESULT,
> > > onPlaylistResult);
> > > playlistService.addEventListener(FaultEvent.FAULT, onFault);
> > > playlistService.send();
> > > }
> >
> > > private function onPlaylistResult(event:ResultEvent):void{
> > > var resultXML:XML = new XML(event.result);
> > > playlist = new XMLList(resultXML.video);
> > > playVideo();
> > > }
> >
> > > private function playVideo():void{
> > > this.myVideoDisplay.source= this.playlist[playlistcurso...@file;
> > > }
> >
> > > private function onFault(event:FaultEvent):void{
> > > trace(event.fault);
> > > }
> > > private function toogleStop(event:MouseEvent):void{
> > > this.myVideoDisplay.stop();
> > > }
> > > private function togglePlayback(event:MouseEvent):void{
> > > if(this.myVideoDisplay.playing){
> > > this.myVideoDisplay.pause();
> > > }else if(this.myVideoDisplay.source){
> > > this.myVideoDisplay.play();
> > > }
> > > }
> >
> > > private function videoComplete(event:VideoEvent):void{
> > > if(this.playlistCursor< this.playlist.length() -1){
> > > this.myVideoDisplay.playheadTime = 0;
> > > this.playlistCursor ++;
> > > this.playVideo();
> > > }
> > > }
> >
> > > private function videoReady(event:VideoEvent):void{
> > > timeDisplayFormatter.formatString = "J:NN:SS";
> > > var totalTime:Date = new Date(start.getTime() +
> > > (this.myVideoDisplay.totalTime * 1000));
> > > this.videoLength = timeDisplayFormatter.format(totalTime);
> > > }
> >
> > > private function updateTimeDisplay(event:VideoEvent):void{
> > > timeDisplayFormatter.formatString = "N:SS";
> > > var currentTime:Date = new Date(start.getTime()+
> (event.playheadTime
> > > * 1000));
> > > tf_playtimeDisplay.text =
> timeDisplayFormatter.format(currentTime) +
> > > "/" + this.videoLength;
> > > }
> >
> > > Ta ai, o fonte primeiro o mxml com o player, e abaixo o actionscript
> > > que trata o player.
> >
> > > Alguns fatos interessantes.
> >
> > > Se eu limpo o cache do meu navegador, o sistema funciona direitinho.
> > > Se eu rodo o sistema, algumas vezes ele da erro outras não, isto sem
> > > eu mexer no codigo.
> >
> > > On 26 fev, 10:39, Chacal Army <[email protected]> wrote:
> > > > tem como colocar seu fonte?
> >
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---