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中下载图片、音频和视频的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新