Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存并加载音频_C#_Android_Unity3d - Fatal编程技术网

C# 保存并加载音频

C# 保存并加载音频,c#,android,unity3d,C#,Android,Unity3d,团结 当我点击“记录”按钮时: -麦克风启动(“内置麦克风”,正确,1044100) 当我单击“暂停”按钮时: -SavWav.Save(Application.persistentDataPath+“/Resources/storyrecord”,aud.clip) 文件保存路径为:/storage/simulated/0/Android/data/com.owos.woftbattle/files/Resources/storyrecord com.owos.woftbattle是我的包裹

团结
当我点击“记录”按钮时:
-麦克风启动(“内置麦克风”,正确,1044100) 当我单击“暂停”按钮时:
-SavWav.Save(Application.persistentDataPath+“/Resources/storyrecord”,aud.clip)

文件保存路径为:/storage/simulated/0/Android/data/com.owos.woftbattle/files/Resources/storyrecord

com.owos.woftbattle是我的包裹。 storyrecord是我的文件名

那么,我可以用代码打开这个吗?
这是我的代码:Resources.Load(“file:///Resources/storyrecord");

它不起作用了


有人能帮我吗?

首先要了解的是,您不能在构建(Android)中写入或保存到
Resources
文件夹。只能从编辑器中创建
Resources
文件夹。您在
资源
文件夹中放入的任何内容都将是唯一的内容。无法将更多文件删除或添加到资源文件夹。它是只读的,一旦你建立你的应用程序

其次,将文件保存为
Application.persistentDataPath+“/Resources/storyrecord”
将不起作用。即使文件已保存,保存的文件也不在
Resources
文件夹中。因为它不是,
Resources.Load
无法读取它。
Resources.Load
功能只能从编辑器中读取资源文件夹中添加到其中的文件

重要的是,你要了解以上所有内容,以备将来参考,并避免类似的错误。如果要在运行时保存文件,请始终将数据保存在:
Application.persistentDataPath/YourFolderName
上,然后使用
WWW
类或
System.IO
命名空间中的一个文件API加载它。您正在使用的是将其保存为“.wav”扩展名,因此您必须使用
WWW
API来加载它

保存音频的路径(音频路径):

保存音频:

SavWav.Save (tempPath ,aud.clip);
将音频加载为音频剪辑:

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);
}
加载它需要一个协同例程函数,因此必须使用start例程函数:
start例程(loadAudio(tempPath))

注意

在某些Android设备上,必须先添加
“file://”
,然后才能使用
WWW
类加载音频。
如果是这样,只需添加
path=“file://”+path
到上面的
loadAudio
函数中的第一行代码,以修复路径。

很抱歉回复太晚,我正忙于几个不同的项目。非常感谢你,它成功了:)。你救了我的命!
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);
}