2017-11-24 7 views
1

ユニティ
をロードしない:
- Microphone.Start( "内蔵マイク"、真、10、44100); 「一時停止」ボタンをクリックしたとき:
- SavWav.Save(Application.persistentDataPath + "/Resources/storyrecord",aud.clip);Resources.Load <AudioClip>オーディオ

com.owos.woftbattleは私のパッケージです/storage/emulated/0/Android/data/com.owos.woftbattle/files/Resources/storyrecord:

Aファイルはパスで保存されました。 ストーリーケースは私のファイル名です。

コードでこれを開くことはできますか?
これは私のコードです:Resources.Load( "file:/// Resources/storyrecord");

これは機能しません。

誰かが私を助けることができますか?

+0

私のソリューションをチェックしましたか? – Programmer

答えて

1

最初に理解しなければならないのは、ビルド(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;を追加するだけでパスを修正できます。

+0

遅く返事をして申し訳ありません、私はいくつかの異なるプロジェクトで忙しすぎました。そんなに働いてくれてありがとう:)。あなたは私の命を救いました ! –

関連する問題