1

我試圖發揮使用Adobe空氣通過RTSP視頻Videostreaming,我的權限:對劇本

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

,但是當我玩(),它什麼都不做。

可以在Playbook上進行RTSP流播放嗎?如果沒有,可能還有其他類型的視頻流? WebWorks的? html5視頻標籤?

本地Youtube應用程序預裝了流媒體視頻。

在此先感謝

這裏的示例代碼

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("Initialize error", 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("play() error", 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)); 
    } 

} 

}

回答

0

看來,RTSP wasnt在6/2011支持(一年前)。從NDK更新的發行說明。本地Youtube應用可能不會使用RSTP進行流式傳輸(還有其他方式可以傳輸視頻)。檢查出this link欲知更多信息。

但是在Webworks方面,是的。 Html5視頻標籤已全面實施。你可以在這裏找到更多的信息:https://bdsc.webapps.blackberry.com/html5/apis/HTMLVideoElement.html它將使用內置的視頻播放器。請注意,這不適用於BB10。

更新:BB10平臺現在也支持HTML5視頻標籤。

+0

非常感謝,我會檢查一下 – ffgiraldez 2012-12-20 16:51:49