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);
}