当前位置: 首页 > wzjs >正文

物流网站建设网百度推广创意范例

物流网站建设网,百度推广创意范例,旅游网站界面设计,平面设计师必去的网站文章目录 音乐下载远程音乐 音乐 音乐文件如果只从工程目录里面读取,那有很多种方法可以优化,比如设置Load Type直接采用流式加载方式,内存直接降最小(但是记住,每种优化都是有对应的代价的,优化是一种平衡…

文章目录

  • 音乐
    • 下载远程音乐

音乐

音乐文件如果只从工程目录里面读取,那有很多种方法可以优化,比如设置Load Type直接采用流式加载方式,内存直接降最小(但是记住,每种优化都是有对应的代价的,优化是一种平衡的艺术)。但是如果我是从url加载进来的音乐呢 是不是就无能为力了

下载远程音乐

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using UnityEngine;
using UnityEngine.Networking;public class MusicTest : MonoBehaviour
{public AudioSource audioSource;public string audioUrl = "http://music.163.com/song/media/outer/url?id=447925558.mp3";private void Start(){GetAudio(audioUrl, (result, clip, tips) =>{audioSource.clip = clip;audioSource.loop = true;audioSource.Play();});}public bool GetAudio(string url, Action<bool, AudioClip, string> callback){if (string.IsNullOrEmpty(url)){callback?.Invoke(false, null, "URL is empty");return false;}if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)){callback?.Invoke(false, null, "Invalid URL format");return false;}StartCoroutine(DownloadAudioCoroutine(url, callback));return true;}private IEnumerator DownloadAudioCoroutine(string url, Action<bool, AudioClip, string> callback){using (var request = UnityWebRequestMultimedia.GetAudioClip(url, DetectAudioType(url))){request.disposeDownloadHandlerOnDispose = true;request.timeout = 30;var operation = request.SendWebRequest();while (!operation.isDone){// float progress = request.downloadProgress;yield return null;}if (request.result == UnityWebRequest.Result.Success){AudioClip clip = DownloadHandlerAudioClip.GetContent(request);if (clip != null){clip.name = Path.GetFileNameWithoutExtension(url);callback?.Invoke(true, clip, null);}else{callback?.Invoke(false, null, "Audio decoding failed");}}else{string errorMsg = $"Download failed: {request.error} (HTTP {request.responseCode})";Debug.LogError(errorMsg);callback?.Invoke(false, null, errorMsg);}}}private AudioType DetectAudioType(string url){string ext = Path.GetExtension(url).ToLower();return ext switch{".mp3" => AudioType.MPEG,".wav" => AudioType.WAV,".ogg" => AudioType.OGGVORBIS,".aiff" => AudioType.AIFF,_ => AudioType.UNKNOWN};}
}

这是一份很正常的代码,使用UnityWebRequest下载一首音乐资源,随便从开源的歌曲直链里面就能拿到,比如我代码上的这首资源,时长3分50,大小3.5MB,然后我加载进来,用Memory Profile跑一下,内存
这么大,手算大小44100 × 2 × 2 × 230 ≈ 40,548,000 字节 ≈ 38.7MB,还真差不多。完了,动态加载进来的,clip不能在后面设置压缩比和加载方式。
我当初在找资料的时候,一大片都没说明优化方案,大多都在强调如何从工程中导入的时候做优化,其实就加一行代码就能解决内存爆表的问题,

request.downloadHandler = new DownloadHandlerAudioClip(url,AudioType.MPEG){ streamAudio = true };

streamAudio这个参数还是我翻源码翻出来的。比较可惜的是,现在问一些稍微深入的一点AI,它们给出的回答里面,也会提到这个优化点,可惜了。

http://www.dtcms.com/wzjs/128086.html

相关文章:

  • 自然搜索优化seo分析师
  • 济南科技市场做网站重庆小潘seo
  • 有没有可以做翻译的网站近期重大新闻
  • 黄冈网站建设有哪些口碑营销案例2022
  • 做足球推荐网站能赚钱吗广告竞价排名
  • 网站banner设计百度网盘下载慢
  • linux 做网站云盘搜
  • 做化学合成的网站有哪些海淀网站建设公司
  • 网站建设实训总结封面滁州网站seo
  • 淮安网站建设哪家好深圳网站营销seo费用
  • jw网站设计微信上如何投放广告
  • 西安教育类网站建设公司营销推广的平台
  • 网站建设模板下载优化网站性能
  • 河南工程知名的seo快速排名多少钱
  • 利用建站系统wordpress建设网站成都谷歌seo
  • 建设企业网站内容在线网页制作工具
  • 杨小刀网站建设网站seo站长工具
  • 云狄网站建设搜索引擎优化主要包括
  • 中山做网站的公司专业营销策划团队
  • 客服系统官方网站站长工具在线免费
  • 烟台网站建设企业淘宝培训
  • 做网站襄樊竞价排名是什么
  • 做网站js框架关键词看片
  • 网站开发的方法和步骤360推广平台登录入口
  • 天津百度做网站多少钱黑帽seo技术
  • 展示型网站案例腰肌劳损的自我治疗和恢复的方法有什么?
  • 做网站的空间要多大的seo优化基础教程pdf
  • 找钟点工做的网站山西网络营销seo
  • wordpress新浪jquery2020做seo还有出路吗
  • 主机托管服务长沙建站seo公司