在运行时加载 MP3 文件

2023-12-28

我正在尝试使用在运行时加载 mp3 文件WWW http://docs.unity3d.com/ScriptReference/WWW.htmlUnity中提供的类。

我没有收到任何错误,但在处理歌曲后我无法播放音乐。我到处都找过了,但找不到任何可以帮助我的东西。

这是我当前使用的代码:

public class OpenFile : MonoBehaviour {
    string path;
    string extension;
    public GameObject musicAnalysis;
    string songName;
    float length;
    AudioSource song;

    // Use this for initialization
    void Start () {
        song =  musicAnalysis.GetComponent<AudioSource>();
    }

    // Update is called once per frame
    void Update () {
        if(song.isPlaying != true){
            song.Play();
        }
    }

    public void FileSelect(){
        //Open windows Exploer 
        path = EditorUtility.OpenFilePanel("Select a Song","","");

        print(path);

        //Take the end of the the path and sasve it to another string
        extension = path.Substring(path.IndexOf('.') + 1);

        print (extension);
        //Check if the user has select the correct file
        if(extension == "mp3" || extension == "wav" || extension == "ogg"){
            //if correct file process file
            print ("You have selected the correct file type congrats");

            LoadSong();
            print ("Song Name: " + songName);
            print ("Song Length: " + length);
        }
        //if the user selects the wrong file type
        else{
            //pop up box that tells the user that they have selected the wrong file
            EditorUtility.DisplayDialog("Error","Incorrect File Type Please select another","Ok");
            ////Open windows Exploer 
            path = EditorUtility.OpenFilePanel("Select a Song","","");
        }
    }

    void LoadSong(){
        WWW www = new WWW("file://" + path);
        song.clip = www.audioClip;
        songName =  www.audioClip.name;
        length = www.audioClip.length;

        while(!www.isDone){
            print ("Processing File" + path);
        }

        if(www.isDone == true){
            print ("Song has been processed");
        }
    }
}

如上所述,Windows 不支持 MP3,因此请使用 OGG 或 WAV。 编辑:此方法实际上适用于 mp3,我在 Unity 2019.3.6f 上使用多个文件进行了测试

您必须等待 WWW 完成才能访问该剪辑。并且 WWW 必须在异步协程中加载。

public void LoadSong()
{
    StartCoroutine(LoadSongCoroutine());    
}

IEnumerator LoadSongCoroutine()
{
    string url = string.Format("file://{0}", path); 
    WWW www = new WWW(url);
    yield return www;

    song.clip = www.GetAudioClip(false, false);
    songName =  song.clip.name;
    length = song.clip.length;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在运行时加载 MP3 文件 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • 是否可以仅更改文本阴影的颜色?

    我有 9 个不同颜色的按钮 红色 橙色 黄色 绿色 蓝色 紫色 粉色 灰白色和石板色 我想知道是否可以仅操纵和更改按钮的颜色text shadow这些按钮的 CSS 属性 同时保持其他值相同 例如 我有两个不同的班级 一个用于 11px 字
  • pandas 返回未命名的列

    以下是我在 Excel 工作表中的数据示例 A B C 1 2 3 4 5 6 我正在尝试使用以下代码获取列名称 p1 list df1t columns values 输出是这样的 A B C Unnamed 3 unnamed 4 un
  • 如何打印包含值的列

    假设我有一个包含以下内容的数据文件 1 2 3 4 5 67 88 12 32 22 9 99 34 59 86 17 0 78 0 77 11 0 0 0 43 我想要一个在每一列中搜索数字 0 的代码 如果找到数字 0 代码将在单独的文
  • 如何使 XmlnsDefinition 在本地程序集上工作?

    我开始使用 XmlnsDefinition 属性将一些 CLR 命名空间绑定到单个 xmlns 中 以便在 XAML 中使用 不幸的是 这似乎只在使用外部程序集时才有效 如果我在与我从 XmlnsDefinition 引用的命名空间中的类型
  • 似乎无法使用 Expo 的 Font.loadAsync 加载自定义字体

    我正在将 React Native 与 Expo 结合使用 除了自定义字体的问题之外 一切都很顺利 我有我的字体Lobster Regular ttf在 assets fonts 中 我一直在尝试加载它 如官方文档中所示 component
  • Android 风格微调器

    我正在努力让我的 Android 应用程序变得更时尚 并取得了一些进展 但旋转下拉菜单给我带来了麻烦 我有一个屏幕截图来向您展示问题 我想要的是背景中的白色框是透明的 就像在后屏幕上与下拉菜单之外的屏幕其余部分一样的灰色覆盖层中 如果我没记
  • kubernetes cronjob 并更新秘密

    下面是我的 python 脚本 用于更新密钥 以便我可以使用 kubectl 部署到 kubernetes 所以它工作得很好 但我想创建一个 kubernetes cron 作业 它将运行 docker 容器来更新 kubernetes 集
  • 无法在 Javadoc 注释中链接到 JDK10

    从 Java 9 升级到 10 后 使用 Javadoc 工具生成文档时 例如 对于导入文件 指向 JDK 的链接不再起作用java util Optional link Optional 呈现为Optional而不是作为Optional
  • 带有layout_width=matchparent 的TableLayout 不匹配父级

    我有一个包含两列和两行的 tableLayout 两行和最后一列的宽度都有 match parent 但布局没有填充父宽度 它的表现就像有 wrap content 一样 这是代码
  • Keras + TensorFlow:“模块‘tensorflow’没有属性‘merge_all_summaries’”

    非常类似于Keras tensorflow 给出错误 no attribute control flow ops https stackoverflow com questions 40046619 keras tensorflow giv
  • 如何扩展文本区域以垂直和水平适应文本?

    我怎样才能使用 html css 和 jquery 来做这样的事情 我发现这个问题根据内容长度调整文本区域大小 https stackoverflow com questions 995168 textarea to resize base
  • getMapAsync 错误 - Google 地图 api android

    因此 我尝试从 Json 文件在地图上显示标记 但它们没有出现 我已将其范围缩小到该行 map mapFragment getMapAsync this 它给了我错误 不兼容的类型 必需 com google android gms map
  • 在 Mac OS X 上使用 PCL(点云库)生成项目

    我按照其建议安装了所有依赖项和预编译的 PCL 库site http pointclouds org downloads macosx html 安装完所有内容后 我想生成一个项目如下this http pointclouds org do
  • GAE开发服务器重启后保留全文搜索索引吗?

    是否有办法强制 GAE 开发服务器在重新启动后保留全文搜索索引 我发现每当开发服务器重新启动时索引都会丢失 当我启动开发服务器时 我已经在使用静态数据存储路径 datastore path选项 此功能是在几个版本之前添加的 我认为是在 1
  • 我的项目在 IntelliJ IDEA 中的文件夹层次结构有什么问题吗?

    今天 当我打开我的项目时 我的文件夹层次结构出现了一些问题 您可以看到下面的内容 这里没有包 一般来说 公共文件夹层次结构应该是这样的 EDIT 我尝试重新打开该项目并重新打开我的 IntelliJ IDEA 两者都不起作用 Delete
  • 将坐标转换为城市名称?

    如何使用 MapKit 从坐标获取地址 我有这个代码 当长按地图时它会获取坐标 func didLongPressMap sender UILongPressGestureRecognizer if sender state UIGestu
  • 尝试同时编译多个 CUDA 文件时出现链接错误 LNK2005

    我有一个 CUDA 程序 可以正常工作 但目前全部写在一个文件中 我想将这个大文件分成几个较小的文件 以便更容易维护和导航 新的结构是 foo cuh foo cu bar cuh bar cu main cu The cuh头文件包含结构
  • 我想在 Yup 中转换值,但 Formik 没有返回正确的值

    我在表单 电子邮件 中有一个值 我想将其转换为小写 我在 Yup 中有一个转换正在工作 但 Formik 没有显示小写值 如何才能使当我以大写形式输入电子邮件时 它会自动转换为小写形式 这是我的代码 import React from re
  • 无法终止 SPID“事务回滚正在进行中”

    我的数据库中有一条处于永久回滚模式的未提交语句 当我尝试终止与此语句关联的 SPID 时 出现以下错误 事务回滚正在进行中 预计回滚完成 0 预计剩余时间 0 秒 此未提交的语句导致用户无法查看数据库的表 视图和过程树 如何停止这个 SPI
  • 在运行时加载 MP3 文件

    我正在尝试使用在运行时加载 mp3 文件WWW http docs unity3d com ScriptReference WWW htmlUnity中提供的类 我没有收到任何错误 但在处理歌曲后我无法播放音乐 我到处都找过了 但找不到任何