【发布时间】:2020-07-02 20:38:17
【问题描述】:
我正在尝试从 StreamingAssets 文件夹中存在的“.mp3”或“.wav”文件创建音频剪辑
我正在尝试使用 BetterStreamingAssets 包从文件中获取字节数组,然后将字节数组转换为 audioClip,但许多文件没有正确转换。
所以,我尝试使用 WWW 或 UnityWebRequest 来获取它,所以这是我的代码
public static IEnumerator PlayAudioClip(AudioSource audioSource, string path)
{
using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.UNKNOWN))
{
yield return www.SendWebRequest();
if (www.isNetworkError)
{
Debug.Log(www.error);
}
else
{
AudioClip myClip = DownloadHandlerAudioClip.GetContent(www);
audioSource.clip = myClip;
audioSource.Play();
}
}
}
我这样称呼它
StartCoroutine(PlayAudioClip(audio, BetterStreamingAssets.Root + "/" + soundPath));
但发生的情况是代码在编辑器或 pc 平台上完美运行,但在 android 平台上没有声音工作。
那么,如何在安卓平台播放语音呢?
【问题讨论】:
-
您确定是音频再现的问题,还是android平台上的streamingassets路径不同?
-
你能包括
BetterStreamingAssets.Root + "/" + soundPath的值吗?对于每个构建目标,流媒体资产的路径都不同。在安卓上是`"jar:file://" + Application.dataPath + "!/assets"`docs.unity3d.com/Manual/StreamingAssets.html