Welcome!

Welcome to the Official BlackBerry Support Community Forums. This is your resource to discuss support topics with your peers, and learn from each other. New to the forum? Please visit the ‘Getting Started’ link below.
inside custom component

Adobe AIR Development

Reply
Contributor
ffgiraldez
Posts: 10
Registered: ‎10-18-2011
My Carrier: Movistar

Video Streaming on playbook

[ Edited ]

HI!

 

I'm trying to play a video via RTSP, I have the permissions:

 

<action>access_internet</action>
<action>set_audio_volume</action>
<action>access_shared</action>
<action>play_audio</action>

 

but when I play (), it does nothing.

It's possible to do RTSP Streaming on Playbook? If not, it's possible any other kind of videostreaming?

The native Youtube App preinstaled do streaming video.

 

Thanks in advance

 

Please use plain text.
Developer
zezke
Posts: 816
Registered: ‎12-12-2010
My Carrier: Mobile Vikings

Re: Video Streaming on playbook

Can you post some code? Do you have any debug output?

-------------------------------------------
Your like is much appreciated!
Samples: Park in Ghent
Feeling generous? Nominate me for BB Elite member!
Please use plain text.
Contributor
ffgiraldez
Posts: 10
Registered: ‎10-18-2011
My Carrier: Movistar

Re: Video Streaming on playbook

here the code 

package 
{
	import flash.display.Sprite;
	import flash.filesystem.File;
	import flash.events.Event;
	
	import qnx.events.MediaPlayerEvent;
	import qnx.media.MediaPlayer;
	import qnx.media.VideoDisplay;
	import qnx.ui.events.MediaControlEvent;
	import qnx.ui.media.*;
	import qnx.dialog.AlertDialog;
	import qnx.dialog.DialogSize;
	
	
	
	/**
	 * ...
	 * @author Fernando Franco Giraldez
	 */
	
	// The following metadata specifies the size and properties of the canvas that
	// this application should occupy on the BlackBerry PlayBook screen.
	[SWF(width="1024", height="600", backgroundColor="#cccccc", frameRate="30")]
	
	public class Main extends Sprite 
	{
		
		private var _myPlayer:MediaPlayer;
		private var _myVD:VideoDisplay;
		private var _myMediaControl:MediaControl;
		private var alert:AlertDialog;
		
		public function Main()
		{
			try {
			initializeUI();
			initializePlayer();  
			}catch (ex:Error) {
				showAlertDialog("Error en inicializar", ex.name + " - " + ex.message + "\n"+ex.getStackTrace());
			}
		}
		
		private function initializePlayer():void
		{
			
			_myVD = new VideoDisplay;
			_myVD.setPosition(1024/2 - 800/2, 600/2 - 480/2);
			_myVD.setSize(800, 480);
			_myVD.backgroundColor = 0xFFFFFF;
			addChild(_myVD);
			
			_myPlayer = new MediaPlayer();
			_myPlayer.addEventListener(MediaPlayerEvent.INFO_CHANGE, infoChange);        
                            
			var file:File = File.userDirectory.resolvePath("shared/videos/Wildlife.wmv");
                        //_myPlayer.url = file.nativePath;   //using this i can see the video  
			_myPlayer.url = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"; 
			//_myPlayer.url = "rtsp://stream.the.sk/live/joj/joj-hm.3gp"
                        // but using any of internet urls i can`t see anything
			_myPlayer.videoDisplay = _myVD;
			_myPlayer.prepare();
			showAlertDialog("Preparando video", "acabo de meteer: " + _myPlayer.url);
			
		}
		 
		private function initializeUI():void
		{
			
			_myMediaControl = new MediaControl();
			_myMediaControl.width = 900;
			_myMediaControl.x = Math.round((stage.stageWidth - _myMediaControl.width) / 2);
			_myMediaControl.y = stage.stageHeight - _myMediaControl.height;
			
			_myMediaControl.setOption( MediaControlOption.VOLUME, true );
			_myMediaControl.setOption( MediaControlOption.PLAY_PAUSE, true );
			_myMediaControl.setOption( MediaControlOption.NEXT, true );
			_myMediaControl.setOption( MediaControlOption.PREVIOUS, true );
			_myMediaControl.setOption( MediaControlOption.STOP, true );
			_myMediaControl.setOption( MediaControlOption.SEEKBAR, true );
			_myMediaControl.setOption( MediaControlOption.DURATION, true );
			_myMediaControl.setOption( MediaControlOption.POSITION, true );
			_myMediaControl.setOption( MediaControlOption.BACKGROUND, true);
			_myMediaControl.setProperty( MediaControlProperty.VOLUME, 80 );
			
			_myMediaControl.addEventListener( MediaControlEvent.STATE_CHANGE, mediaControlStateChange );
			_myMediaControl.addEventListener( MediaControlEvent.PROPERTY_CHANGE, mediaControlPropChange );
			
			addChild(_myMediaControl);            
			
		}
		
		private function infoChange(event:MediaPlayerEvent):void {
			
			if (event.what.position) {
				_myMediaControl.setProperty(MediaControlProperty.POSITION, _myPlayer.position);
			}
			if (event.what.duration) {
				_myMediaControl.setProperty(MediaControlProperty.DURATION, _myPlayer.duration);
			}
			if (event.what.state) {
				_myMediaControl.setState(_myPlayer.isPlaying ? MediaControlState.PLAY : MediaControlState.PAUSE);
			}        
			
			
		}
		
		private function mediaControlStateChange(mediaControlEvent:MediaControlEvent):void
		{
			var state:String = _myMediaControl.getState();
			
			switch( state )
			{
				case MediaControlState.PLAY:
					if (!_myPlayer.isPlaying) 
					{
						try {							
							_myPlayer.play();
							showAlertDialog("Play", "play detectado");
						}catch (ex:Error) {
							showAlertDialog("Error en play", ex.name + " - " + ex.message + "\n"+ex.getStackTrace());
						}
					} 
					else 
					{
						_myPlayer.speed = 1000;
					}
					break;
				case MediaControlState.PAUSE:
					_myPlayer.pause();
					break;
				case MediaControlState.STOP:
					_myPlayer.stop();
					break;
				case MediaControlState.SEEK_START:
					_myPlayer.pause();
					break;
				case MediaControlState.SEEK_END:
					_myPlayer.play();
					break;
				default:
					break;
			}
		}
		
		private function mediaControlPropChange(event:MediaControlEvent):void {
			
			switch (event.property) {
				
				case MediaControlProperty.POSITION:
				{
					_myPlayer.seek(uint( _myMediaControl.getProperty(MediaControlProperty.POSITION)));
				}
					break;
				case MediaControlProperty.DURATION:
					break;
				case MediaControlProperty.FULLSCREEN:
					break;
				case MediaControlProperty.VOLUME:
					break;
				default:
					break;
			}
		}
		
		private function showAlertDialog(title:String,message:String):void
		{
			alert = new AlertDialog();
			alert.title = title;
			alert.message = message;
			alert.addButton("OK");
			alert.addButton("CANCEL");
			alert.dialogSize= DialogSize.SIZE_MEDIUM;
			alert.addEventListener(Event.SELECT, alertButtonClicked); 
			alert.show();
		}
     
		private function alertButtonClicked(event:Event):void
		{
			trace("Button Clicked Index: " + event.target.selectedIndex);
			trace("Button properties Object"+event.target.getItemAt(event.target.selectedIndex));
		}
		
	}
	
}

 

Please use plain text.