2011-11-03 54 views
3

OSMF的新手,并试图在我们的聚光灯服务器上播放流mp4。根据本教程http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html,您只需将RTMP链接传递给URLResource即可。我试过了,它不工作。如果我传递一个本地URL,它会很好玩。我使用OSMF 1.5 SWC和我的代码是带有OSMF的RTMP流媒体 - AS3

package 
{ 
    import flash.display.*; 
    import flash.events.*; 
    import org.osmf.media.*; 

    public class Main extends Sprite 
    { 
     private var mps:MediaPlayerSprite; 

     public function Main() 
     { 
      stage.align  = StageAlign.TOP_LEFT; 
      stage.scaleMode = StageScaleMode.NO_SCALE; 

      mps    = new MediaPlayerSprite(); 
      mps.width  = 640; 
      mps.height  = 360; 
      mps.resource = new URLResource("rtmp://my.limelight.host.net/mp4:dyk_seatbelts_high.mp4"); 
      addChild(mps); 
     } 
    } 
} 

我没有得到任何错误,只是一张空白的画布。有任何想法吗?

+0

你试过mps.play()? –

+0

好吧,它会'mps.mediaPlayer.play()',是的,我已经尝试过。使用本地文件时,它会自动播放,因此我认为RTMP链接不会有任何不同。 – Ronnie

+0

如果我没有记错的话,在进行NetStream连接时需要调用的是风光服务器上的函数。抱歉已经过了大约2年,我不记得我做了什么,也没有编码。 –

回答

2

您应该为RTMP流媒体添加流媒体和视频网址。例如:

var resource:DynamicStreamingResource = new DynamicStreamingResource(videoStreamer); 
resource.urlIncludesFMSApplicationInstance = true; 
var vector:Vector.<DynamicStreamingItem> = new Vector.<DynamicStreamingItem>(1); 
vector[0] = new DynamicStreamingItem(videoUrl, 1200); 
resource.streamItems = vector; 
element = new VideoElement(resource); 

player.media = element; 

您可以添加几个动态流项目。具有不同比特率的视频文件。

示例videoStreamer:RTMP:// streamer_url

示例videoUrl:MP4:path_to_video.mp4

+0

以防万一它可以帮助任何人,您可以使用@ExtremeBt创建的资源作为视频播放器的源 myVideoPlayer.source = resource; –

+0

是的,您也可以使用代码:player.media = element,'player'可以是MediaPlayerSprite,MediaPlayer或StrobeMediaPlayer。 – ExtremeBt

2

这仅仅是一个更新。 DynamicStreamingItem不再可用。您可以简单地将您的rtmp流url添加到StreamingURLResource。戏剧就像一个魅力。 (纠正我,如果我错了....我是新来的OSMF)

var videoElement:VideoElement = new VideoElement(); 
videoElement.resource = new StreamingURLResource("rtmp://cp140972.XXXXX",StreamType.LIVE,NaN,NaN,null,false); 
player.media = videoElement;