最初に理解しなければならないのは、ビルド(Android)のResources
フォルダに書き込みまたは保存できないことです。 Resources
フォルダは、エディタからのみ作成できます。 Resources
フォルダ内に置いたものだけがその場所にあります。リソースフォルダにファイルを削除したり、追加することはできません。アプリをビルドすると、読み取り専用になります。
第2に、ファイルをApplication.persistentDataPath + "/Resources/storyrecord"
として保存することはできません。ファイルが保存されても、保存されたファイルはResources
フォルダにありません。そうでないので、Resources.Load
は読むことができません。 Resources.Load
関数は、エディタからResourcesフォルダに追加されたファイルのみを読み取ることができます。
今後の参考として、また同様の誤りを避けるために上記の内容をすべて理解しておくことが重要です。実行時にファイルを保存する場合は、常にApplication.persistentDataPath/YourFolderName
にデータを保存し、WWW
クラスまたはFile APIのいずれかをSystem.IO
名前空間からロードします。 libraryは、".wav"という拡張子で保存していますので、読み込むにはWWW
APIを使用する必要があります。
string tempPath = Path.Combine(Application.persistentDataPath, "Audio");
tempPath = Path.Combine(tempPath, "storyrecord.wav");
保存オーディオ:
SavWav.Save (tempPath ,aud.clip);
負荷たAudioClipとしてオーディオ:それはあなたのように、コルーチン機能を必要と
IEnumerator loadAudio(string path)
{
//Load Audio
WWW audioLoader = new WWW(path);
yield return audioLoader;
//Convert it to AudioClip
AudioClip aClip = audioLoader.GetAudioClip(false, false, AudioType.WAV);
}
読み込んオーディオ(オーディオパス)を保存する
パスStartCoroutine関数を使用する必要があります。StartCoroutine(loadAudio(tempPath));
注:あなたはWWW
クラスとオーディオを読み込むことができます前に、いくつかのAndroidデバイスで
は、あなたが"file://"
を追加する必要があります。 その場合は、上記のloadAudio
関数のコードの最初の行にpath = "file://" + path;
を追加するだけでパスを修正できます。
私のソリューションをチェックしましたか? – Programmer