Проблема в пути.Вы должны использовать C # FileInfo
и DirectoryInfo
API, чтобы вернуть соответствующий путь, а затем передать этот путь в WWW
API.Передайте /mnt/sdcard
API DirectoryInfo
, и вы получите правильный путь для использования.Путь для использования с WWW
API для доступа к данным на SD-карте: "file:///" + FileInfo.FullName.
.
Удар является примером.Предполагается, что музыкальные файлы .mp3 помещаются в папку с именем "music" на SD-карте.Если он находится в папке с именем «MP3» , измените "/mnt/sdcard/music"
на "/mnt/sdcard/MP3"
. Убедитесь, что вы выбрали Настройки сборки для Android, измените Разрешение на запись с Внутренний до Внешний (SDCard) .
public AudioSource aSource;
public string path = @"/mnt/sdcard/music";
private FileInfo[] info;
private DirectoryInfo dir;
IEnumerator LoadAndPlaySound()
{
//Get the proper path with DirectoryInfo
dir = new DirectoryInfo(path);
//Get all .mp3 files in the folder
info = dir.GetFiles("*.mp3");
//Use the first audio index found in the directory
string audioPath = "file:///" + info[0].FullName;
using (WWW www = new WWW(audioPath))
{
yield return www;
//Set the AudioClip to the loaded one
aSource.clip = www.GetAudioClip(false, false);
//Play Audio
aSource.Play();
}
}
Это функция сопрограммы, поэтому вы можете назвать ее как StartCoroutine(LoadAndPlaySound());