问题标签 [opensl]

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.

0 投票
2 回答
3120 浏览

android - Supported OpenSL ES Features in Android

Android is supposed to support 3D audio via the OpenSL es API which is accesible via the NDK. That more or less works, I managed it to play sound via a created player and an output mix. But when I try to realise a listener with a 3D location interface (SL_IID_3DLOCATION constant) which is mandatory for playing 3D sound. But when I try to set the constant to SL_BOOLEAN_TRUE the result of the CreateListener method is 12 as passed to the LogCat. 12 is the value of the OpenSL es constant SL_RESULT_FEATURE_UNSUPPORTED. Below you can find a short part of the code, can anyone confirm if I do anything wrong or if the feature really is unsopported, meaning that the OpenSL es implementation does not support 3D audio?

0 投票
2 回答
1415 浏览

android - 是否需要释放来自 OpenSL ES 音频播放器的已完成缓冲区?

只是为了确认。当通过适用于 Android 的 OpenSL ES 创建的音频播放器完成播放缓冲区时,垃圾收集器会自动释放该缓冲区吗?还是我需要自己释放缓冲区?

如果是后者,我可以使用一些帮助。但就目前而言,在我被告知我需要自己做之前,我不会发布任何代码......

0 投票
5 回答
34933 浏览

android - 适用于 Android 的 OpenSL ES 教程

我一直在尝试使用可用于使用 android 2.3 进行本机音频的 OpenSL ES 库,但似乎头文件和规范的 600 页 pdf 是唯一可用的文档。

我应该在哪里寻找示例、教程或功能的简要概述?

0 投票
2 回答
1369 浏览

android - 在 android 上以本机代码捕获/呈现音频

我正在研究如何消除我对如何在 Android 平台上使用本机代码捕获和呈现音频的困惑。我听说有一个名为 OpenSL 的音频 API。是否有关于如何使用它的推荐指南和教程?

此外,是否有任何适用于 OpenSL 的好的音频包装器,例如 OpenAL 包装器之类的?我已经在其他平台上使用 OpenAL 开发了音频部分,因此重用代码会很好。

OpenSL 是否有限制——比如必须在 Java 代码中完成的事情?

OpenSL 与 OpenAL 有何不同?

谢谢!

0 投票
2 回答
6407 浏览

audio - 适用于 Windows、Mac 和 iOS 的音频库?OpenAL/OpenSL

我用 OpenGL 编写了一个桌面/iOS 游戏,并想播放音频文件(mp3 或 wav)。我已经使用过 CoreAudio 和 AudioQueues,但现在我需要一些也适用于 Windows(可能还有 Linux)的东西。

到目前为止,我已经看到:

  • 开放式
  • 开放式SL

我只需要真正的基本功能——比如“playSound(file)”和“isPlaying(file)”——没有 3D 声音、效果等等……OpenAL 和 OpenSL 都来自 khronos——所以我真的没有区别(是的,它们是 2 个不同的图书馆思想)。

什么是最简单的跨平台灵魂?我可以用其中一个代码编写在 iPhone 和类似的台式电脑上运行的代码吗?

0 投票
1 回答
2413 浏览

android - 在 Android 上使用 OpenSL 进行音效混合

我目前正在通过 OpenSL 在 Android 上实现音效混合。我有一个初始实施,但我遇到了一些问题。

我的实现如下:

1) 对于每个音效,我创建了几个 AudioPlayer 对象(每个同步声音一个),这些对象使用一个 SLDataLocator_AndroidFD 数据源,该数据源又引用一个 OGG 文件。例如,如果我有一个快速连续播放的开枪声音(我们称之为 gun.ogg),我使用大约 5 个 AudioPlayer 对象,它们引用相同的 gun.ogg 音频源和相同的 outputmix 对象。

2) 当我需要播放该音效时,我会搜索我创建的所有 AudioPlayer 对象,并找到一个当前不处于 SL_PLAYSTATE_PLAYING 状态的对象并使用它来播放效果。

3) 在播放剪辑之前,我使用 SLPlayItf::SetPosition 寻找它的开头。

到目前为止,这一切正常,但是在快速连续播放声音时会出现一些噼啪声。我在 Android NDK 新闻组上读到,Android 上的 OpenSL 在切换数据源方面存在问题。有没有人遇到过这个问题?

我还想知道是否有其他人看到或想出了在 Android 上用于 OpenSL 的混音方法。如果是这样,您的方法与我的不同吗?关于噼啪声有什么建议吗?

我已经在 Internet 上搜索 OpenSL 文档和示例代码,但是关于混音的内容并不多(仅加载我已经弄清楚的内容)。任何帮助将不胜感激。

0 投票
1 回答
823 浏览

android-ndk - 无法为输出混合对象创建音量接口

我在 Android 上的 OpenSL 中的音量接口有问题。当我尝试使用这样的音量接口创建输出混合对象时:

resultSL_RESULT_FEATURE_UNSUPPORTED即使卷接口在规范中列为强制要求,也会返回。

如果我将 to 更改为1忽略0请求的接口,则会创建输出混合对象,但在尝试 to 时显然会失败GetInterface(outputObject,SL_IID_VOLUME,&volumeInterface)

我在这里看到的唯一提到的音量接口与使用时的音量计算有关EnableStereoPosition

0 投票
0 回答
336 浏览

android - 关于缓冲区中填充的数据大小

我的项目需要低延迟音频,Android 2.3 支持 OpenSL ES。我已经阅读了文档和示例代码,并决定使用 Android 简单缓冲区队列来进行播放和记录。现在,我尝试编写一个简单的应用程序来进行测试。

但是,我对录制有一些疑问。如果我在记录时设置记录器停止,如果没有填满,我如何知道最后一个缓冲区中填充的确切字节数?

在 1.1 版本中,回调函数有一些关于缓冲区及其填充数据的参数,但在 1.0.1 版本中没有这些参数。

有什么办法可以得到这些信息吗?

任何建议将不胜感激!

0 投票
0 回答
801 浏览

android - 在模拟器中使用 OpenSL ES 进行录制

我正在开发一个使用 OpenSLES 进行音频录制和播放的应用程序。此时,该应用类似于 JNI 示例原生音频应用。一个问题是,当程序尝试录制时,它在我的模拟器中出现以下错误,尽管它在真实设备中很好。

这就是我收到该错误的那一行。

当然,我用音频记录设置了 AVD,并在我的 Manifest 中播放 true 和指定以下内容。

我还需要做什么才能消除上述错误?

0 投票
1 回答
1944 浏览

android - 适用于 PC 的 OpenSL 教程 ES(非 Android)

我希望在不涉足整个 Android 业务的情况下开始学习 OpenSL ES 的基础知识。是否没有像 OpenAL 那样描述设置 OpenSL 的过程的教程?

我正在使用 Ubuntu。