[unity] 音频的二进制流转化为audioclip的两种方式

这篇具有很好参考价值的文章主要介绍了[unity] 音频的二进制流转化为audioclip的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、将返回的byte[]数组,转换成float[]数组,然后将通过
audioSource.clip.SetData()方法,将音频数据赋给audiosource,实现语音播放;但这种只有wav很有可以直接用mp3需要第三方库,我没有试过

 int SampleRate = 24000;
 AudioClip _audioClip = AudioClip.Create("audioClip", SampleRate * 600, 1, SampleRate, false); 
  byte[] originalData = response;
 float[] _clipData = new float[originalData.Length / 2];
 for (int i = 0; i < originalData.Length; i += 2)
 {
 _clipData[i / 2] = (short)((originalData[i + 1] << 8) | originalData[i]) / 32768.0f;
 }
              
_audioClip.SetData(_clipData, 0);

mp3的请参考:https://blog.csdn.net/L877790502/article/details/119042479

2、将返回的btye[]数组,使用filestream,先保存为mp3文件,然后,再用www类,读取本地文件,获取www,audioclip,在赋给audiosource,进行音频播放。文章来源地址https://www.toymoban.com/news/detail-513215.html


private void ConvertSound(byte[] respone)
{
	File.WriteAllBytes(Application.streamingAssetsPath+"/temp.mp3",originalData);
 	StartCoroutine(Application.streamingAssetsPath+"/temp.mp3");
}

IEnumerator GetAudioClip(string fullPath)
{
  fullPath = "file://" + fullPath;
    using (var uwr = UnityWebRequestMultimedia.GetAudioClip(fullPath, AudioType.MPEG))
    {
        ((DownloadHandlerAudioClip)uwr.downloadHandler).streamAudio = true;

        yield return uwr.SendWebRequest();

        if (uwr.isNetworkError || uwr.isHttpError)
        {
            debugSongPath2.text = uwr.error;
            yield break;
        }

        DownloadHandlerAudioClip dlHandler = (DownloadHandlerAudioClip)uwr.downloadHandler;

        if (dlHandler.isDone)
        {
            audio.clip = dlHandler.audioClip;

            if (audio.clip != null)
            {
                audio.clip = DownloadHandlerAudioClip.GetContent(uwr);

                Debug.Log("Playing song using Audio Source!");
            }
            else
            {
                Debug.Log("Couldn't find a valid AudioClip.");
            }
        }
        else
        {
            Debug.Log("The download process is not completely finished.");
        }
    }
}

到了这里,关于[unity] 音频的二进制流转化为audioclip的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pyqt5:python读取二进制文件(音频PCM文件)显示波形

    有个项目需要输出10-50Hz的低频信号驱动线圈,考虑使用音频功放硬件,所以做这方面的预研。 参考文章: 作者:很久没安静的回忆了,文章:音频 PCM 详解 作者:怪我冷i,文章:音视频从入门到精通——FFmpeg分离出PCM数据实战 3.作者:cuijiecheng2018,文章:windows下使用FFmp

    2023年04月21日
    浏览(46)
  • Unity 如何导入二进制Spine文件

    总是忘记Spine导出二进制到Unity的设置,记录一下。 TIP 此教程只满足URP渲染管线与Linear颜色空间的需求 纹理打包器也修改一下拓展名(日常操作) 修改图集扩展名 不要 勾选图集的 预乘Alpha ,勾选 溢出 修改图集扩展名 .atlas.txt 可导出以下几种文件 Default Shader 设置为 Univer

    2024年02月07日
    浏览(38)
  • Unity数据解析(Json、XML、CSV、二进制)

    常见的数据解析(Json、XML、CSV、二进制)

    2024年02月21日
    浏览(39)
  • 【Unity】二进制文件 数据持久化(修改版)【个人复习笔记/有不足之处欢迎斧正/侵删】

             变量的本质都是二进制 ,在内存中都以字节的形式存储着,通过sizeof方法可以看到常用变量类型占用的字节空间长度( 1byte = 8bit,1bit(位)不是0就是1 )         二进制文件读写的本质: 将各类型变量转换为字节数组,将字节数组直接存储到文件中 ,不仅可以节

    2024年04月17日
    浏览(47)
  • 【十进制 转 二进制】【二进制 转 十进制】10进制 VS 2进制【清华大学考研机试题】

    原题链接 本题我们先需要知道 十进制 如何转 二进制 二进制 如何转 十进制 十进制 如何转 二进制: 十进制转成二进制 例如 173 转成 二进制 就把173 短除法 除到0 然后 得到的余数, 从下往上写 二进制 转成 十进制 利用如图方法,把二进制 转成 十进制 本题是高精度,如何

    2023年04月26日
    浏览(46)
  • 将数据转二进制流文件,用PostMan发送二进制流请求

    一、将byte数组转二进制流文件,并保存到本地 byte [] oneshotBytes=new byte[]{78,-29,51,-125,86,-105,56,82,-94,-115,-22,-105,0,-45,-48,-114,27,13,38,45,-24,-15,-13,46,88,-90,-66,-29,52,-23,40,-2,116,2,-115,17,36,15,-84,88,-72,22,-86,41,-90,-19,-58,19,99,-4,-63,29,51,-69,117,-120,121,3,-103,-75,44,64,-58,-34,73,-22,110,-90,92,-35,-18,-128,16,-

    2024年02月15日
    浏览(42)
  • java图片转二进制流_java将文件转化成二进制流

    二进制流的主要编码格式是base64码。可以在网上找一些在线转base64编码的网站进行尝试转换。 例如:http://imgbase64.duoshitong.com/然后通过前端展现和下载。 前端显示二进制流图片(src中放置base64码及二进制流) 前端下载二进制流文件(herf中放置base64码及二进制流,download后面放

    2024年02月06日
    浏览(56)
  • 后端返回二进制流,前端处理二进制文件流,实现预览图片以及PDF

    1、首先预览PDF需要 后端 将响应头 Content-Type 设置为PDF类型 application/pdf ,不能预览,会直接下载 2、 前端 定义接口:并设置相应类型 responseType 为 blob 请求数据:通过 window.URL.createObjectURL(res) 转成本地预览地址, 在通过 window.open() 方法打开转成本地预览地址即可预览PDF,如下

    2024年02月15日
    浏览(55)
  • Python中二进制十进制转换

            hello大家好,今天我想和大家分享一下在Python中进制转换加减法的方法。         比如现在我们需要求100 + 10,然后需要将结果110以二进制的形式返回,又或者我们现在有一个小需求,就是要计算二进制1010和二进制1011的和是多少,然后依旧以二进制的形式返回

    2024年02月16日
    浏览(57)
  • Unity AudioClip和PCM音频数据的转化

    1 PCM音频数据转化AudioClip   假设PCM音频当前是16Khz采样率,16bit数据 2 提取AudioClp中的数据转化为PCM bytes字节数组

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包