繁体   English   中英

如何在Flash上​​循环播放视频? [重复]

[英]How to loop a video on flash for air ? [duplicate]

可能重复:
需要Flash Air视频帮助

我正在制作一个基于视频的应用程序。在这个应用程序中,需要720p循环播放。我有5秒的视频,应在5秒后自动播放我的意思是循环。我正在为Android和IOS制作此应用程序。循环的东西使用5秒钟的计时器,但是每个剪辑后都有一个混响。我需要一个平稳的循环,剪辑后没有任何混响

提前致谢

以下是我正在使用的代码。如果您知道其他比此更好的代码,请分享其他内容,请帮助我使用此代码

import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Sprite;

import flash.media.Video;

import flash.net.NetConnection;
import flash.net.NetStream;

import flash.events.NetStatusEvent;
import flash.events.MouseEvent;   
import flash.display.MovieClip;

var video:Video;
var streamClient:Object;
var connection:NetConnection;
var stream:NetStream; 

streamClient = new Object;
streamClient.onTextData = onTextData;
streamClient.onMetaData = onMetaData;
streamClient.onCuePoint = onCuePoint;

video = new Video();
video.smoothing = true;
addChild(video); 

clickMe.addEventListener(MouseEvent.CLICK, initiatePlayback);

function initiatePlayback(e:MouseEvent):void
{
connection = new NetConnection ;
    connection.client = streamClient;
connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
connection.connect(null);

myTimer.start();
video.width = 768;
video.height = 1024;
}

function onNetStatus(e:NetStatusEvent):void {
        switch (e.info.code){
            case "NetConnection.Connect.Success":
               connectStream();
               break;
            case "NetSream.Buffer.FULL":
               video.width = 768;
               video.height = 1024;
               video.scaleY = video.scaleX;

               break;
        }
    }

  function connectStream():void {
        stream = new NetStream(connection);
        stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
        stream.client = streamClient;

        video.attachNetStream(stream);
        stream.play("movie1.mp4");
    }
    function onTextData(info:Object):void {}
    function onMetaData(info:Object):void {}
    function onCuePoint(info:Object):void {}

删除与计时器相关的代码。 您应该能够在onNetStatus事件处理程序中侦听视频完成情况

尝试这个:

function onNetStatus(e:NetStatusEvent):void {
    switch (e.info.code){
        case "NetConnection.Connect.Success":
           connectStream();
           break;
        case "NetSream.Buffer.FULL":
           video.width = 768;
           video.height = 1024;
           video.scaleY = video.scaleX;

           break;
       /////add this case to make the clip loop

       case "NetStream.Buffer.Empty": //listening for the end of the movie
             stream.play("movie1.mp4"); //play the clip again

       break;

      //try using this to create a gapless playback loop
     case "NetStream.Play.Stop":
           stream.seek(0);
     break;


    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM