码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity使用UnityWebRequest读取音频长度不对的解决方法


    在开发的过程中碰到这样一个问题,有的音频文件通过UnityWebRequest读取出来后,AudioClip的Length会不对,比如本身有7秒,读出来只有3秒。代码如下:

    1. IEnumerator TestEnumerator()
    2. {
    3. UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(path, audioType);
    4. yield return www.SendWebRequest();
    5. if (www.isNetworkError || www.isHttpError) {
    6. Debug.Log(www.error);
    7. } else {
    8. AudioClip audioClip = ((DownloadHandlerAudioClip)www.downloadHandler).audioClip;
    9. // 在音频完全下载后获取长度
    10. float length = audioClip.length;
    11. Debug.Log("Content Length: " + length);
    12. }
    13. }

    比如这个文件,我们通过windows查看时长有6秒,然后我们通过代码输出,发现只有4.032秒,这样会导致我们代码后面的逻辑有了问题。

    而且我们直接将文件拖到Unity编辑器内,发现解析出来的确实是6秒。

    这就奇怪了,为什么通过UnityWebRequest会这样呢?(旧版的WWW也是如此)

    因为Unity内部没有源代码,所以我们只能通过别的方式猜测他的逻辑。

    首先我找了个读出来正常长度的音频,我们进行了对比。

    我们发现对的(左边)和错的(右边)他们的音频码率和采样数都不一样,所以猜测是因为音频码率或采样数有关系。

    知道了区别,我们就知道怎么解决了,对于读出来不对的音频,我们可以通过音频软件转换下,将码率换为正确的48kbps以上,采样数24000Hz以上,即可解决问题。

  • 相关阅读:
    系统架构设计师考试题库重点案例:分布式数据库缓存设计
    jsonschema脚本测试
    【WebService】C#搭建的标准WebService接口,在使ESB模版作为参数无法获取参数数据
    使用Python批量发送个性化邮件
    高级深入--day35
    【SA8295P 源码分析 (一)】01 - SA8295P 芯片介绍
    SpringMVC【超详情!!!】
    Prometheus应用监控
    【Rust日报】2022-12-01 Extism - 使所有软件都可编程扩展
    Oracle查看表空间使用率及爆满解决方案
  • 原文地址:https://blog.csdn.net/egostudio/article/details/136477463
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号