• FLV播放器 源码二例


    方法一

    制作步骤:
      1.新建一个FLASH文档,设置舞台大小:300*260。
      2.将组件MediaController和MediaDisplay拖入舞台,然后从舞台上删除。这样做的目的是将这两个组件载入库中,为接下来用attachMovie()方法将MediaController和MediaDisplay组件载入舞台做好准备。
      3.新建一层,命名为function。在该层的第一帧上输入如下AS代码:

    function init(){
    flagNum = 1;
    //播放影片的标示
    flvNum = 0;
    attachController();
    };
    //将MediaController和MediaDisplay组件载入舞台并初始化
    function attachController(){
    //将MediaDisplay组件载入舞台并给定义实例名 "flvContainer" + flagNum
    _root.attachMovie("MediaDisplay","flvContainer" + flagNum,2);
    //设置组件初始参数
    with(_root["flvContainer" + flagNum]){
    _x = 0;
    _y = 0;
    setMedia(myArray[flvNum],"FLV");//设置播放格式可以mp3等
    }
    //将MediaController组件载入舞台并给定义实例名 "flvController" + flagNum
    _root.attachMovie("MediaController","flvController" + flagNum,1);
    //设置组件初始参数
    with(_root["flvController" + flagNum]){
    _x = 0;
    _y = 190;
    activePlayControl = false;
    controllerPolicy = "on";
    //将MediaController和MediaDisplay组件相关联
    associateDisplay(_root["flvContainer" + flagNum]);
    };
    };
    function playNext(){
    //将MediaController和MediaDisplay组件从舞台上删除
    _root["flvController" + flagNum].removeMovieClip();
    _root["flvContainer" + flagNum].removeMovieClip();
    flagNum += 1;
    flvNum += 1;
    //如果播放到影片的最后一首,将flvNum = 0,意为将从头开始播放
    if(flvNum == flvTotal) flvNum = 0;
    //重新载入MediaController和MediaDisplay组件,并给一新的实例名
    attachController();
    //因为每播放完一个影片后MediaController和MediaDisplay组件从舞台上被卸载
    //然后又重新载入MediaController和MediaDisplay组件并给了另外一个实例名
    _root["flvContainer" + flagNum].addEventListener("complete", myListener);
    };
    4.新建一层,命名为action,在该层第一帧输入一下AS代码:

    stop();
    //数组myArray用来存储 载入的XML文档中的影片名称
    var myArray = new Array();
    //影片的总数
    var flvTotal:Number;
    var myXml = new XML();
    myXml.ignoreWhite = true;
    myXml.load("list.xml");
    myXml.onLoad = function() {
    var e = myXml.firstChild.childNodes;
    flvTotal = e.length;
    for (var i = 0; i<flvTotal; i++) {
    myArray.push(e[i].attributes["title"]);
    }
    init();
    _root["flvContainer"+flagNum].addEventListener("complete", myListener);
    };
    var myListener = new Object();
    myListener.complete = function(eventObject) {
    playNext();
    };

     用记事本写入下面内容作为播放列表,保存为list.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    - <flvLists>
    <item title="http://littleredflowers.com/shipin/yugao.flv" />
    <item title="http://littleredflowers.com/shipin/huaxu-01.flv" />
    <item title="http://littleredflowers.com/shipin/huaxu-02.flv" />
    <item title="http://littleredflowers.com/shipin/huaxu-03.flv" />
    </flvLists>

    相关源码下载 点击下载此文件

    方法二

    我们将制作的这个FLV播放器由这样几部分组成:
    一个用于显示视频图像的视频对象,
    三个分别用于播放、暂停和停止视频的按钮,
    以及一个用于显示缓冲区装载进度的动态文本。

    1. 创建三个按钮元件,分别命名为“播放”、“暂停”、“停止”,将其各自一个实例拖放到场景舞台中。

    2. 创建一个视频元件,将其一个实例拖放到场景舞台中,并赋予其实例名myVideo。

    3. 在场景舞台中放置一个动态文本,赋予其实例名myText。

    4. 在根时间线的第1帧中捆绑下面的脚本:

    //创建一个NetConnection对象。
    myFLVConnection=new NetConnection();
    //创建一个流连接。
    myFLVConnection.connect(null);
    //创建一个NetStream对象。
    //myFLVConnection被指定给该NetStream对象。
    myFLVStream=new NetStream(myFLVConnection);
    //myFLVStream被捆绑到Video对象myVideo:
    myVideo.attachVideo(myFLVStream);
    //设置缓冲时间。
    myFLVStream.setBufferTime(10);

    分析这段脚本,首先我创建了一个NetConnection对象myFLVConnection,然后我调用NetConnection对象的connect()方法打开了一个流连接,在调用connect()方法时你必须传递给它一个null值作为参数。

    接下来,我利用myFLVStream=new NetStream(myFLVConnection);这行代码创建了一个NetStream对象myFLVStream,在创建时我就需要把为该“流”提供的“连接”告知它,即把myFLVConnection对象作为参数传递给NetStream类的构造函数。
    之后,我把myFLVStream(“流”)捆绑到Video对象myVideo。然后,我还用NetStream类的setBufferTime()方法以秒为单位指定了一个缓冲时间,即要在缓冲区中装入可供播放多长时间的数据后才开始播放。

    5. 在“播放”按钮实例上捆绑下面的脚本:

    on(release){
        //装载并播放FLV文件。
        myFLVStream.play("myFLV.flv");

        //定义bufferLoad函数以供setInterval函数调用来显示缓冲进度。
        function bufferLoad(){
            //在动态文本中显示缓冲区的装载进度。
            myText.text="缓冲区已装载"+int((myFLVStream.bytesLoaded/myFLVStream.bytesTotal)*100)+"%";
    }
            //设置时间间隔。
            setInterval(bufferLoad,20);
    }

    这行代码—myFLVStream.play("myFLV.flv");用来装载和播放FLV文件。如果你的FLV文件位于某个HTTP地址或本地文件系统的某处,你可以使用http://或file://这样的格式作为路径的前缀来指定FLV文件的位置。
    这个表达式—myFLVStream.bytesLoaded/myFLVStream.bytesTotal用来检查缓冲区已装载的字节占缓冲区要装载的总字节的比值。bytesLoaded和bytesTotal是NetStream类的两个属性。

    6. 在“暂停”按钮实例上捆绑下面的脚本:

    on(release){
        //暂停FLV文件。
        myFLVStream.pause();
    }

    7. 在“停止”按钮实例上捆绑下面的脚本:

    on(release){
        //停止FLV文件并同时删除下载的FLV文件。
        myFLVStream.close();
    }

    8. 制作完成。你应该在你的网站中测试这个FLV播放器。

  • 相关阅读:
    solr初步了解
    jieba初步了解
    情感计算emokit
    常用命令
    java跨域访问问题记录
    mysql 免安装版配置
    Android 图片缩放方法
    spring android http
    sql join 与where的区别
    android activitygroup 使用
  • 原文地址:https://www.cnblogs.com/esun/p/572389.html
Copyright © 2020-2023  润新知