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,进行音频播放。


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的两种方式相关推荐

  1. java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...

  2. 十进制转二进制,用java的两种基本方法,适合新手

    十进制转二进制,用java的两种基本方法,适合新手 1.String字符串拼接法 package cn.sxt;import java.util.Scanner;/*** 6. 从键盘输入某个十进制整 ...

  3. unity添加天空盒的两种方式

    添加天空盒有两种方式  1 : 在当前相机上添加skybox     2 : 在当前场景上添加skybox (两种方式的结果是一样的   第一种方式的优势在于 如果 世界中有多个摄像机的话,切换摄像机 ...

  4. Unity中制作自定义字体的两种方式

    Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式.一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体.二是 ...

  5. List使用stream流转成map的几种方式

    List使用stream流转成map的几种方式 实体例子 List<Object> 转成Map<String,Object> List<Object> 转成Map& ...

  6. Unity中ugui如何制作不规则按键的两种方法

    Unity中ugui如何制作不规则按键的两种方法 两种不同的方案 目前,关于这个问题如何,解决通过搜索引擎我们能找到两种不同的方案: 多边形碰撞器: 该方法是指给精灵(Sprite)添加一个多边形碰撞 ...

  7. python 读取wav 音频文件的两种方式

    python 中,常用的有两种可以读取wav音频格式的方法,如下所示: 1 import scipy 2 from scipy.io import wavfile 3 4 import soundfi ...

  8. Unity中传入任意数,转换成分,秒,并进行倒计时换算..(两种方式)

    第一种方式是利用Unity中的协程,代码如下: using System.Collections; using System.Collections.Generic; using UnityEngin ...

  9. unity 2D游戏开发 制作帧动画的两种方法

    本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法. 比较简单,一学即会. 方法一: 是用代码控制: 先创建一个2D工程.导入图片资源,并设置texture的texture ty ...

最新文章

  1. 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目
  2. 数字测图原理与方法的实习日志_【技术】消费级无人机倾斜摄影测量1:500测图方法及精度研究...
  3. 用linux下常用命令wget进行整站下载(递归下载至本地)
  4. php对象编程遇到的BUG!
  5. 分行与支行有什么区别
  6. mysql 5.7 的组复制
  7. 内存映射MMAP和DMA【转】
  8. 微软Visual Studio2005开发工具路线图详解
  9. 游标循环读取的正确逻辑_千分尺的正确使用方法原来是这样?我用了那么多年都用错了...
  10. 纯css实现给图片加标签
  11. eclipse java 注释_Eclipse Java注释模板设置详解
  12. NSString的retainCount
  13. js中contains()方法的了解
  14. 06 - 雷达发射机 概述
  15. 什么是OBD及组成和作用、工作原理
  16. Unity 2019.3现已发布
  17. Mac设置顶部菜单栏技巧?
  18. 基于CUDA的GPU并行计算技术实现网课课表编排
  19. 2022年全球市场旋转压片机总体规模、主要生产商、主要地区、产品和应用细分研究报告
  20. 连接 s3.amazonaws.com port 443: Connection refused

热门文章

  1. A4988驱动42步进电机
  2. 英雄联盟手游推荐耳机,南卡Lite Pro 2展现优秀游戏声效处理硬实力
  3. 苹果疯了,现在又开始坑支付宝!
  4. 【智能物流】河南烟草:新网络模式下的物流系统优化
  5. android okgo参数,android okgo post传数组
  6. 二、python基础语法篇(黑马程序猿-python学习记录)
  7. ConcurrentHashMap1.7深度解析
  8. Python数据分析与机器学习21- 逻辑回归项目实战5-阀值
  9. 基础元件学习——电容器知识
  10. 校园IP网络广播系统方案