Unity中下载图片、音频和视频
2022/1/11 6:05:37
本文主要是介绍Unity中下载图片、音频和视频,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
使用unity2020.3.0进行网络图片、音频和视频资源的加载和交互,通过网上搜索资源并结合工程实践尝试了一些操作,实现了相似的功能,在此分享给大家。
一、下载图片
曾经使用的www方式进行下载,这里使用UnityWebRequest在携程中进行下载,具体实现方式如下:
IEnumerator getImage(string url) { UnityWebRequest unityWebRequest = UnityWebRequest.Get(url); yield return unityWebRequest.SendWebRequest(); if (unityWebRequest.isNetworkError || unityWebRequest.isHttpError) { Debug.Log("网络错误"); } else { // 网络正常情况先获取到图片的数据 byte[] results = unityWebRequest.downloadHandler.data; // 创建一个 Texture,这个尺寸要自己定 Texture2D myTexture = new Texture2D(1, 1); myTexture.LoadImage(results); myTexture.Apply(); yield return new WaitForSeconds(0.01f); if (m_videoShow != null) { m_videoShow.GetComponent<RawImage>().texture = myTexture; } yield return new WaitForSeconds(0.01f); Resources.UnloadUnusedAssets(); } }
二、加载网络音频
思路:可以直接加载播放;也可以下载到本地,然后进行播放。
(一)直接可以加载播放
using (var uwr = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.MPEG)) { yield return uwr.SendWebRequest(); if (uwr.isNetworkError) { Debug.LogError("uwrERROR:" + uwr.error); m_errList.text = uwr.error; } else { GetComponent<AudioSource>().clip = DownloadHandlerAudioClip.GetContent(uwr); } } GetComponent<AudioSource>().Play(); yield return new WaitForSeconds(0.01f); Resources.UnloadUnusedAssets();
(二)下载然后播放
IEnumerator getMp3Data(string url) { UnityWebRequest unityWebRequest = UnityWebRequest.Get(url); yield return unityWebRequest.SendWebRequest(); if (unityWebRequest.isNetworkError || unityWebRequest.isHttpError) { // 网络错误 Debug.Log("网络错误"); } else { // 网络正常情况 // 先获取到图片的数据 byte[] results = unityWebRequest.downloadHandler.data; System.IO.File.WriteAllBytes(m_tempFTPFilePath, results); yield return new WaitForSeconds(0.01f); Resources.UnloadUnusedAssets(); } PlayAudio(m_tempFTPFilePath); }
然后进行播放,具体如下:
void PlayAudio(string urlNow) { //获取音频名称 string cacheUrl; string urlOld = urlNow; int posNow = urlNow.LastIndexOf('/'); //wav保存地址 cacheUrl = urlNow.Insert(posNow, "/Cache").Replace(".mp3", ".wav"); //判断是否已经转换过 if (!File.Exists(@cacheUrl)) { //将MP3转换成WAV using (var audioStrem = new Mp3FileReader(urlOld)) { WaveFileWriter.CreateWaveFile(@cacheUrl, audioStrem); } } //使用Unity加载wav音频并播放 StartCoroutine(LoadAndPlay(@cacheUrl)); }
三、播放视频
获取视频的网络地址后,使用UniversalMediaPlayer插件,设置路劲参数,可以直接播放网络视频。
以上仅供参考,请大家多多指点。
这篇关于Unity中下载图片、音频和视频的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09百万架构师第十二课:源码分析:Spring 源码分析:Spring系统概述及IOC实现原理|JavaGuide
- 2025-01-08如何用关键链方法突破项目管理瓶颈?
- 2025-01-08电商人必看!6 款提升团队协作与客户满意度软件!
- 2025-01-08电商团队管理混乱?快用这 6 款软件优化协作流程!
- 2025-01-08短剧制作效率低?试试这5款任务管理工具
- 2025-01-08高效应对电商高峰,6 款团队协作软件大揭秘!
- 2025-01-08为什么外贸人都爱上了在线协作工具?
- 2025-01-08提升工作效率,从这些任务管理工具开始
- 2025-01-08新年电商订单暴增,必备的 6 款可视化协作办公软件有哪些?
- 2025-01-08短剧制作经理必备技能与工具全解析