gpt4 book ai didi

c# - 保存和加载音频

转载 作者:行者123 更新时间:2023-11-30 00:14:43 25 4
gpt4 key购买 nike

团结
当我点击“记录”按钮时:
- Microphone.Start("内置麦克风", true, 10, 44100);当我点击“暂停”按钮时:
- SavWav.Save (Application.persistentDataPath + "/Resources/storyrecord",aud.clip);

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

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

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

它不工作。

谁能帮帮我?

最佳答案

首先要了解的是,您不能写入或保存到 Resources build(Android) 中的文件夹。 Resources文件夹只能从编辑器中创建。无论你在Resources里面放什么文件夹将是那里唯一的东西。您无法将更多文件删除或添加到 Resources 文件夹。一旦您构建了您的应用程序,它就是只读的。

其次,将文件保存为 Application.persistentDataPath + "/Resources/storyrecord"不管用。即使保存了文件,那个保存的文件也不在Resources中。文件夹。因为它不是,Resources.Load无法阅读。 Resources.Load函数只能读取从编辑器添加到 Resources 文件夹中的文件。

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

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

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

注意:

在某些 Android 设备上,您必须添加 "file://"在您可以使用 WWW 加载音频之前类(class)。如果是这种情况,只需添加 path = "file://" + path;loadAudio 中的第一行代码上面的函数来修复路径。

关于c# - 保存和加载音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com