以下所有内容在unity5.6.2测试。如果是之前版本,不能保证可行型。

因为程序需要,需要使用unity加载网络的MP3音乐,但是网上一查。发现已有的结论是无法直接解析MP3,需要使用其他的库将MP3转换为wav,ogg等其他格式。但是我看文章的发表日期也十分久远,心想,MP3这种全世界使用最多的音乐格式,unity没有理由不支持啊。

终于在仔细的后发现了其支持mp3的蛛丝马迹。

如图,是unity支持的audio格式。大眼一看似乎真的是不支持MP3。但当我们一一点开注释你会发现,

原来,MP3,mpeg同属于Mpeg,虽然不清楚为什么他两个会属于一种类型(可能都是mp开头。哈哈,也可能是因为他们的编码方式相同)。不管怎么说,已经有很明显的证据证明了。MP3是可以直接播放的。

网络加载MP3的方法分为两种,一种是使用WWW ,另外一种是使用UnityWebRequest。

我估计应该是版本迭代的原因。这两种方式加载的MP3方式并不能很好的兼容。就是说,因为WWW是较老的加载方式,(unity也有意抛弃)。所以有些情况下WWW是不能实现的。下文会详细列出。

播放的路径大致分为三种。

一、在StreamingAssets文件夹下播放

二、在网络上服务器,根据url播放

三、在PersistentDataPath文件夹下播放(用于缓存音乐)

这些地址也有很大的坑。这里就简单说下,关于unity地址的一些坑,这里不深入写,网上很多详细的讲解。

如果使用StreamingAssets加载 则必须加”file://”

WWW www = new WWW(“file://”+Application.streamingAssetsPath + “/music.mp3”); OK

WWW www = new WWW(Application.streamingAssetsPath + “/music.mp3”); XXX(不可以)

使用PersisDataPah则不需要。

使用WWW的方式播放MP3音乐。

IEnumerator LoadMusic()
{
string path = Application.persistentDataPath + "/MusicData" + "/Always.mp3";//WWW www = new WWW("http://www.xxx.com/music.mp3");(网络)
WWW www = new WWW(path);
yield return www;
if (www.error!=null)
{
Debug.Log(www.error);
}
AudioClip ac = www.GetAudioClip(true,true,AudioType.MPEG);
audioS.clip = ac;
audioS.Play();
}

重点:!!WWW 的方法只适用用于一,二种方法。!!!注意。第三种用WWW是不可以的。!!
也就是说如果你想要做缓存的话,必须使用unitywebrequest
使用UnityWebRequest加载MP3音乐的方式

IEnumerator GetAudioClip()
{
string path = Application.persistentDataPath + "/MusicData" + "/Always.mp3";
using (var uwr = UnityWebRequest.GetAudioClip(path, AudioType.MPEG))
{
yield return uwr.Send();
if (uwr.isError)
{
Debug.LogError(uwr.error);
yield break;
}
AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr);
// use audio clip
audioS.clip = clip;
audioS.Play();
}
}

UnityWebRequset 是3种都可以的。如果你是WWW的使用者就需要注意啦。

如果你觉得我的文章对你有所帮助或有什么意见千万不要吝啬评论噢。

unity 播放网络MP3的多种方法相关推荐

  1. python实现自动拨打电话_twilio python自动拨打电话,播放自定义mp3音频的方法

    有个小项目,需求是某事件发生时,给客户打电话,提醒客户.需要事先录制好一段音频,客户接通电话后,自动播放. 1. 注册twilio账号 2. 买一个电话号码 3. 安装twilio pip insta ...

  2. Android之MediaPlayer播放网络视频的实现方法

    前段时间忙于工作,现在有时间来分享一下: 这篇文章主要介绍了Android的MediaPlayer播放网络视频的实现方法,是一个非常实用的功能,需要的朋友可以参考下 前面讲解了MediaPlayer播 ...

  3. win7系统打开连接网络连接到服务器,win7的网络连接在哪里?win7系统开启网络连接的多种方法...

    win7系统在上网过程中经常会遇到网络故障问题,导致无法正常上网.一般会打开"网络连接"查看网络的参数状况,对于电脑高手来讲打开网络连接是很简单的事情,但是电脑小白不知道win7的 ...

  4. 【Android】入门级连接网络示例: 网页浏览和播放网络MP3

    前提:使用可以联网的模拟器或者手机调试 一,更改xml文件 <?xml version="1.0" encoding="utf-8"?> <L ...

  5. 多种方法教你破解电信共享上网的限制

    现在很多家庭都有不止一台电脑,多台电脑要实现共享上网,以前大家一般都是通过路由器来实现多台电脑共享上网,但是随着宽带用户的增加,各地的电信开始纷纷封杀家庭用户的多机共享上网,让不少消费者伤透了头脑,难 ...

  6. 我的Android进阶之旅------Android MediaPlayer播放网络音频的实例--网络mp3播放器

    上一篇写了个简单的MP3播放器 ,这次写一个可以播放网络音频资源的播放器 本实例可以实现音乐播放器除了来电的时候会暂停播放,通话结束后恢复播放外,打开其他的Activity都可以继续播放音乐,享受一边 ...

  7. Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51448597 项目源码(打赏5积分请点这边):http://download.csdn ...

  8. Android盒子看百度云,百度云视频怎么在电视播放?智能电视/电视盒子访问百度网盘的多种方法...

    怎么在电视上播放百度云里面的资源视频?很多小伙伴把重要的视频资料放到了百度网盘里,想在智能电视或者电视盒子上观看.不过百度网盘没有TV版本很是纠结,不过小伙伴们也别灰心,还是有方法可以用的!接下来小编 ...

  9. Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51290181 觉得博文有用,请点赞,请留言,请关注,谢谢!~ 实现功能: 实现NetM ...

最新文章

  1. 关于Centos下Clamv反病毒软件包更新问题
  2. 360金融沈赟:只有适配实践的技术才能实现价值掘金
  3. requests.exceptions.SSLError: hostname '127.0.0.1' doesn't match None
  4. push and pop
  5. 士兵杀敌(二)(线段树+树状数组)
  6. Android Https相关完全解析 当OkHttp遇到Https
  7. PE文件数据结构汇总
  8. x264编码参数大测试:08 subme与指定码率(1000Kbps)
  9. 时间处理:计算下一天日期,如输入2004/12/31(注释2014年12月31日),则输出2005/1/1....
  10. [源码和文档分享]基于JAVA的即时通信软件
  11. php array 取值 没有key,PHP array_key_exists不起作用;数组不是多维的
  12. SAP屏幕设计器专题:表格控件属性的设定(七)
  13. 安全漏洞整改解决方案
  14. CentOS 6 和CentOS 7 的区别
  15. 【zk开发】让eclipse识别×.zul文件为xml格式
  16. P-6002-10PK,P-6002-2PK脂质研究工具解析
  17. 如何压缩pdf文件 把pdf文件变小
  18. 量化敏捷项目管理案例分享
  19. 睡眠 应该用 a加权 c加权_CPA每日一练财管加权平均资本成本的计算
  20. 灰色页面,HTML灰色页面

热门文章

  1. 好文回顾:二十世纪的数学(Atiyah)
  2. MATLAB批量处理数据
  3. 单片机反相器_秒懂单片机晶振电路原理
  4. 44 转载arcgis api for js 4.x 叠加自定义图片
  5. JWT(解决前后端分离和微服务的用户会话跟踪问题)
  6. 计算机辅助教学系统状况,计算机辅助教学系统组成.pptx
  7. Pascal正常血压
  8. 农行c语言笔试题,中国农业银行总行计算机类笔试经验
  9. 刚构桥的优缺点_刚构桥特点
  10. GIS让电网更加智能