Unity: загрузка mp3 из папки StreamingAsset в iOS

1

Я пытаюсь загрузить MP3 из папки streamingasset в проект единства, работающий под IOS. В редакторе все работает нормально, но на iPhone MP3 не загружается.

Я знаю о проблемах с файловыми путями, но предположил, что все сделано правильно. Вот код:

string fileName = "mytestfile";

if (Application.platform == RuntimePlatform.IPhonePlayer) {
    path = "file:/" + System.IO.Path.Combine (Application.streamingAssetsPath, fileName + ".mp3");
} else {
    path = "file://" + Application.dataPath + "/StreamingAssets/" + fileName + ".mp3";
}

Debug.Log ("LOAD FROM STREAMING ASSET " + path);

// Start a download of the given URL
WWW request = new WWW (path);

// Wait for download to complete
yield return request;

// use request.audio 
AudioClip loadedMp3 = request.GetAudioClip (false, false);   
Debug.Log ("Result length " + loadedMp3.length);  

И вот вывод в xcode:

LOAD FROM STREAMING ASSET file://var/mobile/Applications/{appid}/appname.app/Data/Raw/mytestfile.mp3

Длина результата 0

Кто-нибудь знает, что я делаю неправильно? Как я уже сказал, в редакторе все работает нормально.

Теги:
unity3d
iphone

1 ответ

0

Я действительно знаю это, потому что я использовал его сегодня. потоковые активы в iOS называются /Raw/. Таким образом, вы должны сделать #if UNITY_IPHONE и reference/Raw/вместо StreamingAssets. В андроиде он становится еще более запутанным. Вы должны обратиться к своему.jar !! Разве вы не рады, что используете iOS?

Также вам не нужен файл://

если UNITY_EDITOR

Использовать StreamingAssets

Создание XCode-игрока волшебным образом превращает ваш каталог в Raw. Поэтому во время работы ваш код должен это сказать!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню