问题标签 [openal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 我可以在给定时间只玩一次任何缓冲区吗?
从 OpenAL 文档中:
基本的 OpenAL 对象是 Listener、Source 和 Buffer。可能存在大量包含音频数据的 Buffer。每个缓冲区可以附加到一个或多个源
我的问题是,我有一个声音文件,我需要每秒同时播放多次。声音时长 2 秒。所以会重叠。
我是否需要为此填充多个缓冲区(= 多次在内存中发出声音)?
如果我将一个缓冲区附加到多个源,我是否能够播放声音 10 次,重叠自身,内存中只有一个副本?或者我还需要在内存中处理 10 个该声音的副本吗?
iphone - Apple 是否提供 OpenAL 编程指南?
我找不到任何东西。也许有一个,无论如何?
audio - 在音频编程环境中音高和速度是一回事吗?
音高的意思是“感知频率”。好的。但是当我在 OpenAL 中将音调调得很低时,声音的播放时间会延长很多倍。如果我把它调得很高,声音会很短,但频率很高。对我来说,从逻辑上讲,是变慢或变快的结果。
还是音高!=速度?
iphone - 如何将来自 OpenAL 的音频与 iPod 音乐混合?
我正在使用我不太熟悉的音频引擎。这是一个来自 Apple 示例项目 (SoundEngine.cpp) 的引擎。它使用 OpenAL 来播放声音效果和音乐,我在任何地方都看不到它初始化带有AVAudioSessionCategorySoloAmbient
或kAudioSessionCategory_SoloAmbientSound
或任何其他类别的音频会话。
我想要做的是让用户的音乐继续在后台播放,但我没有看到可以插入行来设置类别的任何地方。
本质上,初始化代码是:
第三行是用户音乐淡出的地方。它甚至没有引用整个文件中的音频会话。有任何想法吗?
显然,你不能。至少,不是我所针对的操作系统版本。不确定以后的操作系统版本。
java - UnsupportedAudioFileException 的解决方法?
我正处于使用 Java 编写小型音乐/节奏游戏的早期阶段(通过 Slick 框架,该框架又使用 OpenAL,但这在这里可能无关紧要)。游戏需要读取(和播放)多个 WAV 格式的声音文件,但其中一些文件会抛出 [javax.sound.sampled.UnsupportedAudioFileException] 异常。
这些文件可以在 Winamp 或 Foobar2000 中正常播放,因此这意味着 Java 无法识别文件格式的某些变体。在这一点上我有什么选择?
注意:有问题的文件是用户提供的,所以我不能只是事先转换它们(使用类似大胆的东西)。任何转换步骤都必须在运行时完成。
c++ - OpenAL - 确定最大来源
是否有 API 允许您定义底层声音硬件允许的 OpenAL“源”的最大数量?
在网上搜索,我发现了 2 条建议:
- 继续生成 OpenAL 源,直到出现错误。但是,FreeSL(OpenAL 包装器)中有一条注释指出这“非常糟糕,甚至可能使库崩溃”
- 假设你只有 16 个;为什么有人会要求更多?(!)
FreeSL 甚至采用了第二个建议。
那么,是否有一个通用的 API 来定义同时支持的“声音”的数量?
感谢您的时间,
账单
iphone - 使用 AVAudioRecorder 和 AVAudioPlayer 时,OpenAL 不起作用
我已经为音频问题困扰了好几天。我不认为 OpenAL 与 AVAudio 功能相处融洽。
我有自己的 OpenAL 课程。(包装了 MyOpenAL 类)我的应用程序开始使用 AVAudioRecorder 进行录制。我停止录音。然后我单击使用 OpenAL 播放任何声音的“OpenAL Play”按钮。我听不见。但是当我使用 AVAudioPlayer 单击“AVAudioPlayer 播放”按钮时,我可以听到我的录音。
我测试了 oalTouch、avTouch、SpeakHear 示例代码。他们的结果是一样的。在oalTouch中,当AVAudioPlayer停止时,OpenAL同时停止播放。这就是为什么我这么认为。
OpenAL 一起使用 AVAudio~ 函数有问题吗?
我在谷歌上搜索了很长时间。但我找不到解决方案和同样的问题。
感谢您阅读我的。
audio - OpenAL 设备、缓冲区和上下文关系
我正在尝试创建一个面向对象的模型来包装 OpenAL,并且在理解设备、缓冲区和上下文时遇到了一点问题。
从我在程序员指南中可以看到,有多个设备,每个设备可以有多个上下文以及多个缓冲区。每个上下文都有一个监听器,所有的alListener*()
函数都对活动上下文的监听器进行操作。(这意味着如果我想改变它的听众,我必须先激活另一个上下文,如果我做对了。)到目前为止,一切都很好。令我恼火的是我需要将设备传递给alcCreateContext()
函数,但没有传递给alGenBuffers()
.
那么这是如何工作的呢?当我打开多个设备时,缓冲区是在哪个设备上创建的?缓冲区是否在所有设备之间共享?如果我关闭所有打开的设备,缓冲区会怎样?
(或者我错过了什么?)
audio - 第一次使用芬奇。如何播放 mp3、ogg 或其他格式(wav 文件到大)?
我的 *.wav 的工作符合预期。但是 wav 文件太大了,所以我想播放 *.mp3 或 *.ogg 但它不起作用。
我使用在 finch Demo 项目中找到的这行代码
所以我只将sitar.wav 更改为我的.mp3 文件名。
注1: 不能是mp3或ogg,任何文件格式不如wav大都可以,但是哪个?
注意2: 我不知道如何使用声音,所以我在stackoverflow上搜索并找到了finch。它看起来很简单,所以我想使用它,但是如果您知道其他一些简单的方法来播放该声音文件(带有压缩编解码器的环境 + 效果声音),我也会切换到其他技术。
c++ - C++ 中的录音
我想知道,在 C++ 中进行音频录制/播放/搜索的一个好的跨平台实用程序是什么?我在考虑走 ALUT (OpenAL) 的路线,但有更好的方法吗?如果没有,你们知道 ALUT 有什么好的教程/示例代码吗?