AVProVideo的使用以及遇到的问题
一、pico中文件的路徑:file:///storage/emulated/0/SuperClass/{0}
? ? ? ? superclass是自己建的文件夾的名字。
二、設置視頻的路徑:
#region UNITY_ANDROIDmediaPlayer.PlatformOptionsAndroid.path = filePath;#endregion //播放對視頻public void OnOpenVideoFile(string path){_mediaPlayer = ARGameManager.Instance._mediaPlayer;#region UNITY_ANDROID_mediaPlayer._optionsAndroid.overridePath = true;_mediaPlayer._optionsAndroid.path = path;#endregiontransform.Find("VideoDisplay").GetComponent< DisplayUGUI >()._mediaPlayer = ARGameManager.Instance._mediaPlayer;if (path == null || path == ""){_mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, path, true);}else{_mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, path, true);//_mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.AbsolutePathOrURL, path, true);_mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, path, true);}}三、使用:
1、創建Media Player對象
將下載的unitypackage導入工程,導入后會看到幾個demo和插件的說明文檔AVProVideo-UserManual。詳細的插件用法包括視頻格式的支持和API在說明文檔中都有,這里先介紹基礎用法,在之后用到更多功能時會進行更新說明。?
首先創建Media Player對象。在Hierarchy視圖右擊或者選擇菜單欄的GameObject菜單,然后選擇AVPro Video->Media Player。?
??
Media Player對象包括基礎設置,Media Properties(視頻的圖像和音頻設置),Global Settings(全局設置),Preview(預覽,只在Play時有效),Events(回調事件),Platform(多平臺重寫)和About(插件信息)。其中我們一般需要進行設置的只有基礎設置和Events。
2、基礎設置
基礎設置包括文件路徑,自動加載播放,循環音量等信息,這些都是一些視頻的基礎屬性,面板上的設置信息也很易懂。需要注意一下的是Video Location這個選項,插件會根據Location的位置去查找相應的文件夾,這里推薦使用StreamingAssets文件夾,需要在項目的Assets目錄下新建一個StreamingAssets文件夾,然后將視頻拖進去,StreamingAssets中的文件不會被打包到程序資源包中,而是作為一個獨立的目錄自動生成在輸出的程序目錄的Data目錄下。Recent選項可以快速選擇之前選擇過的文件,Browse選項可以快速選擇電腦中的文件。?
3、Events
Events是一個MediaPlayerEvent屬性,繼承了UnityEvent類,使用起來跟UGUI的Button控件的event類似,不同的是我們提供的方法需要有三個參數,MediaPlayer、MediaPlayerEvent.EventType和ErrorCode。其中EventType是播放器的一些狀態,有如下幾種:
? ? ? ? ? ?MetaDataReady:視頻數據準備完成
? ? ? ? ? ?ReadyToPlay:視頻加載完成,準備播放
? ? ? ? ? ?Started:視頻開始播放
? ? ? ? ? ?FirstFrameReady:第一幀渲染完成
? ? ? ? ? ?FinishedPlaying:非循環播放的視頻播放完畢
三個參數都需聲明,但只需要對EventType進行判斷,其余兩個變量是情況使用。
public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode er) {switch (et){case MediaPlayerEvent.EventType.ReadyToPlay:Debug.Log("ReadyToPlay");break;case MediaPlayerEvent.EventType.FirstFrameReady:Debug.Log("First frame ready");break;case MediaPlayerEvent.EventType.FinishedPlaying:Debug.Log("Finished");break;} }3、其他設置
其他的設置一般不需要去更改。這里簡單介紹一下:
Media Properties:貼圖的過濾、循環模式和Aniso level的設置,音頻的立體聲設置等。
Global Settings:顯示當前的開發平臺,可以設置是否受TimeScale影響。
Preview:視頻播放時可以查看播放情況,包括拖動進度,重播,顯示Alpha通道,查看當前幀的貼圖,保存當前幀貼圖等。
PlatForm Overrides:可以重寫相應平臺播放的視頻路徑等。
About:插件的相關信息,可以點擊這一項中的按鈕快捷跳轉到開發者的網頁。?
4、創建AVPro Video對象
在Hierarchy視圖右擊或者選擇菜單欄的GameObject菜單,然后選擇UI->AVPro Video。
然后將剛剛的Media Player對象拖給面板中的Media Player屬性,Default Texture和No Default Display可以設置顯示縮略預覽圖,Keep Aspect Ratio可以選擇是否保持視頻分辨率。其他的設置和UGUI的Image類似,不再贅述。?
5、在Text上播放視頻
雖然感覺不是很有用,但是很炫酷的功能。方法很簡單,先創建一個Media Player對象,然后創建一個Text對象,在Text上添加Apply To Material腳本。創建一個Shader為UI/Default Font-Extra Texture的材質,對Apply To Material進行如下圖所示設置即可:?
6、使用腳本動態控制播放。
插件Demo中有一個Demo_VideoControls,包含一個VRC.cs,這個腳本中有詳細的視頻播放的控制功能,參照這個腳本就能實現自己想要的控制功能。比如一些常用的功能:
public MediaPlayer _mediaPlayer;// 播放public void OnPlayButton(){if( _mediaPlayer ){_mediaPlayer.Control.Play();}}// 暫停public void OnPauseButton(){if( _mediaPlayer ){_mediaPlayer.Control.Pause();}}// 重播public void OnRewindButton(){if( _mediaPlayer ){_mediaPlayer.Control.Rewind();}}// 調節音量public void OnAudioVolumeSlider(){if (_mediaPlayer && _audioVolumeSlider && _audioVolumeSlider.value != _setAudioVolumeSliderValue){_mediaPlayer.Control.SetVolume(_audioVolumeSlider.value);}}// 靜音public void OnMuteChange(){if (_mediaPlayer){_mediaPlayer.Control.MuteAudio(_MuteToggle.isOn);}}// 拖動進度public void OnVideoSeekSlider(){if (_mediaPlayer && _videoSeekSlider && _videoSeekSlider.value != _setVideoSeekSliderValue){_mediaPlayer.Control.Seek(_videoSeekSlider.value * _mediaPlayer.Info.GetDurationMs());}}總結
以上是生活随笔為你收集整理的AVProVideo的使用以及遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HX711使用教程-数字电子秤常用芯片
- 下一篇: 2016 年 VR 行业回顾与展望