ゼロの学習からAVProVideoシュウAVProVideo

ヒント:ディレクトリの右側を選択して、あなたはすぐにあなたが必要なものを見つけることができます

A、AVProVideo実用的な機能:

  • WebGLのプレイ動画(UnityはWebGLのプレイ動画のための十分なサポートではありません)
  • Androidのクライアントファイルの中の統一プレーヤーPCクライアントとビデオクリップ(マック、IOS、tvOS、Windowsの携帯電話、UWP、PS4プラットフォーム)
  • ビデオフレームの出力シーケンスを再生
  • 3Dオブジェクトをレンダリング映像(3Dメッシュ)
  • 360°の円/平方(オープン目タヒチと同様に)ビデオを取り巻きます
  • ビデオの周りに180度(世界の半分見て、ビデオではなく、他の半分)
  • クリアビデオ(同様のAR蝶)
  • ...

上記の構成、リファレンスマニュアルP36。

 

 

二、AVProVideoノート

AVProVideoは 、Microsoftのブラウザでエッジで使う代わりに、Internet Explorerの11(anyversion)がサポートされていません。(ドキュメントから)

 

 

二、AVProVideo速い設定

作成StreamingAssetsはフォルダ。

1、フルスクリーンビデオ再生

(このバンド上記プリフォームFullscreenVideoドラッグシーンDisplayIMGUI

B、設定されたビデオパス

C、完全な

 

図2に示すように、プレーヤは、ビデオのサイズ、位置を設定することができ

、右レベルパネル新:AVProビデオメディアプレイヤー

B、新たなパネルキャンバスレベル(この低域キャンバス上EventSystem、新しいUI-AVProビデオuGUI DisplayUGUI

C、MediaPlayerのはAVProビデオをドラッグ

D、今AVProビデオ映像のサイズを調整することができます調整し、オリエンテーション

 

 

第三に、プロパティの説明

参考ドキュメントP41

1、MediaPlayer 脚本 :

メイン

オートオープン:自動起動のプレーに開いていなければなりません。

再生率:再生速度

永続:DontDestroyOnLoadは、それがシーン/負荷レベルで破壊されないように、オブジェクトに適用しました

オーディオ

ボリューム:ボリューム

ミュート:あなたは、ビデオをミュートにしますか

イベント

下記の説明

プラットフォーム固有

これらはあなたが別のファイルパスを設定するなど、プラットフォームごとに異なる属性を設定することができます。

 

2、DisplayIMGUI 脚本

これはすぐにconfigureスクリプトにもたらしフルスクリーンビデオです。

エディタでの表示:エディタでの矩形(AVProVideoアイコンゲームのインタフェース)を表示するかどうか

色:ビデオの色、透明チャネルを含みます

スケールモード:

  • StretchToFill:スケーラブルビデオは、全体のGUIをいっぱいに(全体のビデオを示すが、変形することができます)
  • ScaleAndCrop:元のビデオ形式を維持し、GUIに表示された(元のビデオサイズ、この故障モード映像表示装置)
  • ScaleToFit:ビデオ適応GUIは、(全体のビデオ、無変形を表示するが、上部があってもよいし、黒いバーを下げます)

フルスクリーン:無視するかどうか、高さ、幅X Yの影響、フルスクリーンの使用。

X:左端からの距離

Y:上辺から距離

幅:ビデオの幅の比

身長:ビデオの高さ比

 

3、DisplayUGUI 脚本

DefaultTexture:ビデオは、デフォルトの画像(必要なチェックを外しNoDefaultTexture)を表示するように演奏されていません

NoDefaultTexture:デフォルトの画像かどうか(DefaultTexture)

 

 

第四に、メインAPI

図1に示すように、インタフェース

MediaPlayer mp;
mp.Info.GetVideoWidth();

利用可能:

  • GetDurationMs:戻り値(ミリ秒)の映像の長さ
  • GetVideoWidth:(ピクセル単位)リターンビデオ幅
  • GetVideoHeight:動画の高さ
  • GetVideoFrameRate:戻るメディアフレームレート(ビデオのフレーム毎秒)
  • GetVideoDisplayRate戻り値:現在の達する1秒あたりのフレーム表示レート、(中に現在のビデオの再生中にフレーム毎秒)
  • HasVideo:メディアはビデオトラックを持っている場合は、trueを返します
  • HasAudio:オーディオトラックは、trueを返します
  • IsPlaybackStalled:チェックプレーヤーが停止状態であります
  • ... ...

図2に示すように、制御インターフェース

MediaPlayer mp;
mp.Control.Pause();

達成することができます。

  • SetLooping(ブール値bLooping):ビデオループするかどうかを設定
  • CloseVideo():メモリを解放し、ビデオをオフにします
  • 演奏する()
  • 一時停止()
  • やめる()
  • 巻き戻し():リプレイ
  • シーク(フロートtimeMs):進捗状況を設定します
  • MuteAudio(ブール値bMute):設定し、ミュートするかどうか
  • SetVolume(フロート量):音量を設定
  • フロートGetVolume():音量を取得
  • フロートGetCurrentTimeMs():(ミリ秒単位)現在の再生の進行状況を取得します。
  • BOOL IsMuted:取得ミュートするかどうか
  • BOOL IsLooping:ビデオループするかどうかを取得
  • BOOL CanPlay:ビデオの再生を得ることができます
  • ブール値IsPlaying:動画を再生するかどうかを取得します
  • ブール値IsPaused:あなたが中断するかどうかを取得しています
  • ... ...

3、テクスチャインタフェース

MediaPlayer mp;
Texture videoTexture = mp.TextureProducer.GetTexture();

4、イベント

ビデオプレーヤーの下に表示されるコールバック。

 

達成するための5つの機能:

原産地:ビデオを再生設定と、対応する動画を再生するには、異なるプラットフォーム

デフォルト/ PC側プレイヤー:

    public MediaPlayer mediaPlayer;

    void Start()
    {
        //PC端
        mediaPlayer.m_VideoPath = "vedioURL";
        mediaPlayer.OpenVideoFromFile(
                    MediaPlayer.FileLocation.AbsolutePathOrURL,
                     "视频路径",
                     false);//加载视频。false,取消自动播放
        mediaPlayer.Control.Play();//播放视频
    }

 

アンドリュースは、プレイ終了を設定します。

    public MediaPlayer mediaPlayer;

    void Start()
    {
        //安卓端
        mediaPlayer.PlatformOptionsAndroid.path = "vedioURL";
        mediaPlayer.OpenVideoFromFile(
                   MediaPlayer.FileLocation.AbsolutePathOrURL,
                   mediaPlayer.PlatformOptionsAndroid.path,
                   false);//加载视频
        mediaPlayer.Control.Play();//播放视频
    }

 

1、動画のURLまたはローカルフォルダのビデオを再生します

パネル構成

、ソースパス:絶対パスまたはURL

a、b、再生URLフィル: "http://myserver.com/myvideo.mp4" または "RTSP://myserver.com:8080 / mystream.rtsp"

ローカルビデオを再生するときに入力します。

  • C:/MyFolder/AnotherFolder/MyVideo.mp4(Windowsの場合)
  • /Users/Mike/downloads/MyVideo.mp4(Mac/Linux)
  • /Storage/SD/Videos/MyVideo.mp4(Android外部SDCARD)
  • /Storage/emulated/0/MyFolder/MyVideo.mp4(Androidローカルファイルシステム)
  • /mnt/sdcard/MyFolder/MyVideo.mp4(Androidオクルスゴー)

C、AutoOpenマクロ、自動再生をご確認ください

 

2、資産と一緒に遊んで、図書館ピア・ビデオ

パネル構成

あなたのビデオを置くために、外の資産(外国または新しい資産フォルダ)

B、ソースパス:相対するプロジェクトフォルダ、[参照映像を選択します

C、AutoOpenマクロ、自動再生

 

3、プレイ動画StreamingAssets

パネル構成

、ソースパス:相対へのストリーミング資産フォルダ

B、ブラウズStreamingAssetsフォルダ対応するビデオを選択します

C、AutoOpenマクロ、自動再生をご確認ください

 

4、ビデオプレーヤーの資産に

動画はありませんStreamingAssetsフォルダなければなりません。

1)パネルを設定するには

、あなたのビデオを入れて、資産に新しいフォルダを作成します

B、ソースパス:相対するために、データフォルダ、ブラウザ、それぞれのビデオ

C、AutoOpenマクロ、自動再生

 

5、ビデオ再生の進行状況コールバック

//可以通过上面按键绑定,也可通过下面代码绑定监听。
//_mediaPlayer.Events.AddListener(Skode_OnVideoEvent);
   
 public void Skode_OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode er)
    {
        switch (et)
        {
            case MediaPlayerEvent.EventType.MetaDataReady:
                Debug.Log("视频数据准备完成。当元数据(宽度,持续时间等)可用时触发");
                break;
            case MediaPlayerEvent.EventType.ReadyToPlay:
                Debug.Log("加载视频并准备播放时触发");
                break;
            case MediaPlayerEvent.EventType.Started:
                Debug.Log("播放开始时触发");
                break;
            case MediaPlayerEvent.EventType.FirstFrameReady:
                Debug.Log("渲染第一帧时触发");
                break;
            case MediaPlayerEvent.EventType.FinishedPlaying:
                Debug.Log("当非循环视频播放完毕时触发");
                break;
            case MediaPlayerEvent.EventType.Closing:
                Debug.Log("媒体关闭时触发");
                break;
            case MediaPlayerEvent.EventType.Error:
                Debug.Log("发生错误时触发");
                break;
            case MediaPlayerEvent.EventType.SubtitleChange:
                Debug.Log("字幕更改时触发");
                break;
            case MediaPlayerEvent.EventType.Stalled:
                Debug.Log("媒体停顿/暂停?时触发(例如,当媒体流失去连接时)-当前仅在Windows平台上受支持");
                break;
            case MediaPlayerEvent.EventType.Unstalled:
                Debug.Log("当介质从停止状态恢复时触发(例如,重新建立丢失的连接时)");
                break;
            case MediaPlayerEvent.EventType.ResolutionChanged:
                Debug.Log("当视频的分辨率改变(包括负载)时触发");
                break;
            case MediaPlayerEvent.EventType.StartedSeeking:
                Debug.Log("寻找开始时触发");
                break;
            case MediaPlayerEvent.EventType.FinishedSeeking:
                Debug.Log("搜索完成时触发");
                break;
            case MediaPlayerEvent.EventType.StartedBuffering:
                Debug.Log("缓冲开始时触发");
                break;
            case MediaPlayerEvent.EventType.FinishedBuffering:
                Debug.Log("缓冲完成后触发");
                break;
            case MediaPlayerEvent.EventType.PropertiesChanged:
                Debug.Log("当任何属性(例如,立体声包装改变)时触发-必须手动触发");
                break;
            case MediaPlayerEvent.EventType.PlaylistItemChanged:
                Debug.Log("在播放列表中播放新项目时触发");
                break;
            case MediaPlayerEvent.EventType.PlaylistFinished:
                Debug.Log("播放列表结束时触发");
                break;
        }

        Debug.Log("Event: " + et.ToString());
    }

 

公開された320元の記事 ウォン称賛77 ビュー170 000 +

おすすめ

転載: blog.csdn.net/weixin_38239050/article/details/104414130