您当前的位置: 首页 >  unity

十幺卜入

暂无认证

  • 4浏览

    0关注

    119博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity3d C# 实现mp3的字节数组byte[] 转AudioClip并播放(含源码)

十幺卜入 发布时间:2021-04-22 16:48:24 ,浏览量:4

前言

最近在弄一个语音合成相关的接口,其中合成的语音会通过byte[]返回,如果保存的话是没有任何问题的,不过要是试听的话就很麻烦,网上的方法大多是WAV的,尝试几次后发现播放的声音都是有问题的。期间,看到一种思路就是先将其保存为文件,之后将文件加载成AudioClip,再播放。根据这种思路实现了这个功能。

实现过程

不过比较简单暴力,目前在编辑器下测试没问题,其它平台暂未测试。

保存文件
  string VoiceUrl = Application.persistentDataPath + "/temp.mp3"; //存储路径
  File.WriteAllBytes(VoiceUrl, bytes);  //写入文件

这里bytes就是mp3的数据即字节数组。

加载文件播放
   IEnumerator DoVioceClip()
    {
        UnityWebRequest uwr = UnityWebRequestMultimedia.GetAudioClip(VoiceUrl, AudioType.MPEG);
        {
            yield return uwr.SendWebRequest();
            if (uwr.isNetworkError)
                Debug.LogError(uwr.error);
            else
             {
                AS.clip = DownloadHandlerAudioClip.GetContent(uwr);
                AS.Play();
             }
        }
    }

如上过程,比较简单明了。调用方式:

     StartCoroutine(DoVioceClip());
关注
打赏
1663314737
查看更多评论
立即登录/注册

微信扫码登录

0.1760s