如何使用flex在运行时为RTMP播放器设置流名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用flex在运行时为RTMP播放器设置流名称?相关的知识,希望对你有一定的参考价值。

您好:这是RTMP播放器的代码

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2009/12/14/playing-a-video-from-an-rtmp-server-using-the-spark-videoplayer-control-in-flex-4/ -->
<s:Application name="Spark_VideoPlayer_DynamicStreamingVideoSource_test"
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark">

    <s:VideoPlayer id="vidPlyr"
            loop="true"
            muted="true"
            left="100" right="100"
            top="100" bottom="100"
            horizontalCenter="0" verticalCenter="0">
        <s:source>
            <s:DynamicStreamingVideoSource id="source" host="rtmp://fmsexamples.adobe.com/vod/" streamType="recorded">
                <s:DynamicStreamingVideoItem is="item1" streamName="mp4:_cs4promo_1000.f4v" />
            </s:DynamicStreamingVideoSource>
        </s:source>
    </s:VideoPlayer>

</s:Application>

如何使用as3代码在运行时设置streamName?

我测试过:

source.host="myRTMP";
Item1.streamName="myflv";

但这没用!

但是,当参数嵌入到mxml中时,它可以工作

任何的想法 ?

答案

如果它适用于mxml,这应该适用于as3。解决方案1:在创建完成事件或任何其他事件触发时设置视频播放器参数:

    protected function application1_creationCompleteHandler(event:FlexEvent):void
    {
        source.host=myRTMP;
        Item1.streamName=myflv;

    }

解决方案2:将videoplayer参数绑定到变量:

在MXML中:

<s:VideoPlayer id="vidPlyr"
            loop="true"
            muted="true"
            left="100" right="100"
            top="100" bottom="100"
            horizontalCenter="0" verticalCenter="0">
        <s:source>
            <s:DynamicStreamingVideoSource id="source" host="{myRTMP}"    
                streamType="recorded">
                <s:DynamicStreamingVideoItem is="item1" streamName="{myflv}" />
            </s:DynamicStreamingVideoSource>
        </s:source>
    </s:VideoPlayer>

在ActionScript中:

[Bindable] public var myRTMP:String;
[Bindable] public var myflv:String;

如果这不成功,请验证您的流是否可用

另一答案

我知道这是一个非常古老的帖子,但万一有人遇到同样的问题,Black Screen在播放这个Flex Bug解决方法可能会解决他们的问题。

OSMFSettings.enableStageVideo = false

https://issues.apache.org/jira/browse/FLEX-33856

以上是关于如何使用flex在运行时为RTMP播放器设置流名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用videojs播放rtmp直播流?

如何使用 JW Player 播放 rtmp 流?

如何播放 SoundCloud RTMP 流?

JWPLAYER - 没有 RTMP 连接时如何不显示播放器

Android:如何将 rtmp 流地址发送到外部视频播放器(例如 MX 播放器)

Flex 中的 RTSP