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

网络营销比赛 营销型网站策划企业网站推广渠道

网络营销比赛 营销型网站策划,企业网站推广渠道,深圳市网站设计公司,qq浏览器网页版进入文章目录 音乐下载远程音乐 音乐 音乐文件如果只从工程目录里面读取,那有很多种方法可以优化,比如设置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/304345.html

相关文章:

  • 有没有网站做lol赌博的seo销售话术开场白
  • 专门做灯具海报的网站官方百度平台
  • 社交网站开发注意事项德州seo优化
  • 北京b2c网站建设seo数据优化
  • 电脑制作网站教程电脑清理软件十大排名
  • 本科电子商务专业就业方向杭州seo建站
  • 潍坊做网站的企业销售推广
  • 埃及网站后缀成都网络推广
  • 网站免费正能量软件推荐站长之家网站查询
  • 邢台市建设局安全监督管理网站北京seo网站管理
  • 做网站的主要作用的搜索引擎优化
  • 视频网站制作费用网站平台推广
  • 网站后台如何修改新闻发布时间荆门刚刚发布的
  • 网站维护怎么做网站友情链接连接
  • 营销类网站设计 要点百度官网下载安装
  • 网站开发维护承担的法律责任搜索指数
  • 辽宁奔之流建设工程有限公司网站房地产营销策略有哪些
  • 旅游网站怎么设计推广软文是什么意思
  • 临沂网站建设电话seo是搜索引擎营销
  • wordpress默认 页面首页关键词排名优化
  • 自己做网站需要服务器国家职业技能培训平台
  • 交易平台网站程序宁波网站制作优化服务公司
  • 开发网站实时监控个人网站开发网
  • 福田附近网站开发公司企业网站优化关键词
  • 做童装批发网站百度seo软件是做什么的
  • 东莞高明网站设计30个免费货源网站
  • 如何做下载网站赚钱短视频推广平台
  • 苏州做商城网站设计网站 推广
  • 用凡科做网站好弄吗关键词林俊杰mp3下载
  • 成都建设网站平台长沙网站关键词推广