2017-03-06 57 views
2

我正在使用EasyMovieTexture插件,我想訪問所有視頻保存的android文件夾。首先,我嘗試訪問流媒體資源文件夾,但無法在應用中訪問(Copying files into asset folder in android),因此我創建了所有視頻都在的文件夾,並且我想訪問該特定文件夾以單獨播放視頻。這裏是一個裝載來自URL的視頻樣本代碼,但我希望它從存儲訪問 -如何訪問統一應用程序的android內部存儲文件?

void OnGUI() { 


    if(GUI.Button(new Rect(50,50,100,100),"Load")) 
    { 
     scrMedia.Load("Url of video"); 
     m_bFinish = false; 
    } 

如何訪問視頻的時間間隔存儲到播放。提前致謝。

+0

你有沒有找到一個簡單的解決方案呢?我試圖做同樣的事情:) 我使用/storage/emulated/0/Android/data/com.app.app/cache/ebd_tmp/123.mp4文件路徑看到您的評論。假設'ebd_tmp'是您在UNity項目的Asset文件夾的根目錄中創建的文件夾? 似乎有點隱藏......有沒有一種方法可以指向用戶設備上的合理文件夾,即「視頻」或「下載」? 謝謝 – baroquedub

回答

0

任何文件的文件夾StreamingAssets將包含在構建,在由Application.streamingAssetsPath指定的路徑訪問,則可以看到。

然而,手動提到的Android一個重要的警告:

在Android上,文件都包含一個壓縮.jar文件內(其基本上是相同的格式爲標準的zip壓縮文件)。這意味着如果您不使用Unity的WWW類來檢索文件,則需要使用其他軟件來查看.jar​​歸檔文件並獲取文件。

如果您的視頻插件可以訪問APK中的文件,那麼您只需指定正確的路徑。

如果您的視頻插件需要傳統文件,那麼您需要創建一個。 Unity的WWW類可以將壓縮文件讀取到內存中,然後您可以使用System.File.WriteAllBytes將其寫入某個其他位置(例如Application.temporaryCachePath)。

+0

將文件保存在 -/storage/emulated/0/Android/data/com.app.app/cache/ebd_tmp/- 目錄中,並且在調試時仍然出錯 - Error m_MediaPlayer.setDataSource():/ storage/emulated/0 /Android/data/com.app.app/cache/ebd_tmp/123.mp4 System.err:java.io.FileNotFoundException:/storage/emulated/0/Android/data/com.app.app/cache/ebd_tmp/ 123.mp4 – Deadking66

+0

該文件存在,但它不能讀取它..我在做什麼錯 – Deadking66

+1

Nvm得到它只需要添加「file://」之前..謝謝 – Deadking66

3

您可以使用Application.persistentDataPath訪問內部存儲。

https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html

該目錄是使用

Debug.log(Application.persistentDataPath) 
+0

「Application.persistentDataPath」指定的目錄通常是空的,除非Unity應用程序向它寫入內容(如保存文件)。基於此,視頻文件只有在某種情況下才會出現在那裏。 – rutter

+0

@rutter我想到了這一點,我試圖使用Application.temporaryCachePath並將文件存儲在正在運行的應用程序中,但無法訪問它們 – Deadking66

+0

是的目錄是空的。我曾經使用AndroidFileTransfer將應用程序中的EasyMovieTexture視頻保存在那裏。 – taj

相關問題