01-26-2012 04:34 AM - edited 01-26-2012 07:23 AM
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
01-26-2012 09:03 AM
Can you post some code? Do you have any debug output?
01-26-2012 09:13 AM
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_C HANGE, infoChange);
var file:File = File.userDirectory.resolvePath("shared/videos/Wild life.wmv");
//_myPlayer.url = file.nativePath; //using this i can see the video
_myPlayer.url = "http://devimages.apple.com/iphone/samples/bipbop/b ipbopall.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.P OSITION, _myPlayer.position);
}
if (event.what.duration) {
_myMediaControl.setProperty(MediaControlProperty.D URATION, _myPlayer.duration);
}
if (event.what.state) {
_myMediaControl.setState(_myPlayer.isPlaying ? MediaControlState.PLAY : MediaControlState.PAUSE);
}
}
private function mediaControlStateChange(mediaControlEvent:MediaCon trolEvent):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):vo id {
switch (event.property) {
case MediaControlProperty.POSITION:
{
_myPlayer.seek(uint( _myMediaControl.getProperty(MediaControlProperty.P OSITION)));
}
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.select edIndex));
}
}
}