【问题标题】:How to loop a video on flash for air ? [duplicate]如何在闪光灯上循环播放视频? [复制]
【发布时间】:2012-04-01 13:54:35
【问题描述】:

可能重复:
Flash Air video help needed

我正在制作一个基于视频的应用程序。在这个应用程序中,需要循环播放 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 {}

【问题讨论】:

    标签: ios actionscript-3 flash video air


    【解决方案1】:

    去掉定时器相关的代码。您应该能够在 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;
    
    
        }
    }
    

    【讨论】:

    • 感谢您的帮助。代码运行良好,但主要问题在每个剪辑之后仍然存在间隙。这使得观看循环视频非常糟糕。如果您知道任何使视频播放流畅的方法没有剪辑之间的间隙。请帮助...:)
    • 更新了我的答案以包含另一个可能的解决方案
    • 非常感谢您帮助我。但问题仍然存在。注意我正在为 android 和 ios 制作这个。我在我的平板电脑上测试了这个应用程序。你有任何其他想法可以让它变得更好或另一个播放视频的方法。如果你知道,请帮助我。
    • 您可以尝试将视频嵌入到您的应用程序中
    • 是的,我确实喜欢这样。在我的应用程序中,无需从互联网流式传输视频。视频将从本地目录播放
    猜你喜欢
    • 2015-07-23
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多