问题标签 [oboe]

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 投票
1 回答
298 浏览

android - OpenSL ES 是否支持 PerformanceMode::LowLatency?

当我在Pixel 2 (Oreo 8.0)上构建我的应用程序时,我得到 PerformanceMode::LowLatency:

2019-06-30 15:04:15.560 8506-8506/? D/AUDIO-APP:HearSightEngine - Stream PlayStream 是低延迟

2019-06-30 15:04:15.572 8506-8506/? D/AUDIO-APP:HearSightEngine - 流录制是低延迟

当我在三星 S7 (Nougat 7.0)应用程序上构建我的应用程序时,我不明白:

2019-06-30 14:49:30.874 20025-20025/? W/AUDIO-APP:HearSightEngine - Stream PlayStream 不是低延迟。检查您请求的格式、采样率和通道数

2019-06-30 14:49:30.896 20025-20025/? W/AUDIO-APP:HearSightEngine - 流录制不是低延迟。检查您请求的格式、采样率和通道数

两个显着的区别是

  1. 第一种情况使用 AAudio,第二种情况使用 OpenSL ES。
  2. 第一种情况使用Pixel 2,第二种情况使用三星S7。

OpenSL ES 是否支持 PerformanceMode::LowLatency?还是三星S7不支持?或者是其他东西?我阅读了常见问题解答 [1],它提到了 API < 26 的 AudioAttributes.FLAG_LOW_LATENCY,这样的事情对我有帮助吗?

[1] https://github.com/google/oboe/blob/master/docs/FAQ.md

0 投票
1 回答
474 浏览

android - 在 Android NDK 中构建图形 UI

我正在构建一个音频/音乐应用程序。在安卓中。正因为如此,我正在使用新的 Oboe C++ 库。

我想知道人们如何使用 NDK 应用程序在 Android 中制作图形和 UI。

我认为我不需要 OpenGL 或低级、快速的图形库。这不是游戏。我真的只需要在不同的位置/从一些自定义 UI 小部件中获取不同的触摸。(但我确实需要多点触控)。

是否有一个方便的高级 API 来进行绘图和从 C++ 中获取触摸?如果是这样,它是什么?或者我会更好地用 Java 做所有的 UI,然后只调用 NDK 来获取音频?

这是我第一次尝试使用 Android NDK,而我看过的双簧管示例并没有真正用 C++ 绘制任何东西。一个“hello world”示例使用 Java 小部件。而其他人根本没有在屏幕上绘制任何东西。

0 投票
1 回答
122 浏览

oboe - 使用带有 .obb 文件的双簧管播放声音

你好对不起我是初学者。我的资产文件夹中没有我的声音文件,但在我的 .obb 中,我正在使用仅使用资产文件夹的 RythmGame 示例。我正在尝试使用 DataSound,但在我的示例中仅使用 AAssetDataSource 来创建 DataSound。我查看了 Asset 和 NDKExtractor 的解码功能,但只能与 AssetManager 中的 AAsset 一起使用...如何使用 Oboe 播放来自 .obb 的声音?有人可以帮我解决这个问题吗?

谢谢

0 投票
1 回答
129 浏览

android - 如何使用双簧管加载多个声音

当我尝试加载超过 90 到 100 种声音时,双簧管出现问题,应用程序崩溃:

我已经测试了只玩其中一个并且一切正常。只有当我尝试加载大量文件时它才会崩溃。为了加载所有这些,我只是用户一个 Player 数组:

我尝试升级应用程序的 maxTracks :

但是我现在加载超过 130-140 个声音时崩溃了

与 renderAudio 相同的崩溃:

来自 AudioReady:

我做错了什么?

我必须同时加载 230 240 个声音才能播放它们。请问我可以帮忙吗?

0 投票
1 回答
184 浏览

android - 如何使用双簧管在多声道音频应用程序中获得更小的缓冲区大小

我在音频 android 应用程序中使用 Oboe 1.2。当我调用给出端点缓冲区大小的 getFramesPerBurst() 时,如果输出通道数设置为 2,我会得到预期的结果(240 帧)。但是,当我设置 4 个输出通道时,getFramesPerBurst() 返回的值大约是960(!)。这正常吗?这是硬件的限制吗(我在 4 个不同的设备上进行了测试,但操作系统版本不同)?双簧管的限制?我还注意到这个值与 AudioService 中 AudioManager 的属性 PROPERTY_OUTPUT_FRAMES_PER_BUFFER 给出的值不同。

0 投票
2 回答
410 浏览

java - Android Studio 找不到 Oboe 头文件,但应用程序仍在运行

我正在尝试将 Oboe 原生库合并到我正在制作的 DAW 中。它似乎工作正常,应用程序运行似乎没有问题。问题是,Android Studio 似乎无法从 Oboe 目录中找到标题。这导致我无法使用 Android Studio 中的许多功能,例如预测等。它看起来像这样(无法上传图片):

除了每次我引用“双簧管”时,文本都会变红。

将鼠标悬停在红色文本上会显示一个弹出窗口,上面写着:“找不到'双簧管'”。这很奇怪,因为该项目使用编写的代码编译和运行没有问题。我认为这可能与 Android Studio 中未正确定义的路径有关。我尝试创建一个共享库,模仿双簧管存储库中给出的示例代码,并尝试将其实现为库而不是 CMakeList 文件中的子目录,但最终返回到在我的项目文件夹中引用 git 导入的项目作为子目录。

在makefile中Oboe的实现:

我注意到,当我刷新 c++ 项目时,已经添加了对库的引用,但我似乎无法访问它们。我根本不明白,Android Studio 怎么找不到标头。

我一直在寻找其他有同样问题的人,但它一直是关于崩溃而不是 Android Studio 软件本身的问题。

提前感谢您的帮助。

  • 拉斯穆斯
0 投票
0 回答
38 浏览

android - 玩双簧管时声音崩溃

我所有的代码都可以正常工作。我可以加载和播放我所有的声音。我使用播放器阵列加载 200 个声音,以便同时播放其中一个或多个。但我有最后一个问题。现在当我播放声音时,有时质量很差,或者如果我发送垃圾邮件,它真的像机器人一样糟糕。我需要创建一个像 DJ 声音选项卡这样的应用程序。有很多声音,我可以用按钮发送垃圾邮件。我正在使用 RythmGame 示例。但也许我的问题是我需要更多地定制混音器或类似的东西。有人可以帮我吗?

0 投票
2 回答
450 浏览

c++ - 双簧管异步音频提取

我正在尝试构建一个基于 NDK 的 c++ 低延迟音频播放器,它将遇到多个音频的三个操作。

  1. 从资产播放。
  2. 从在线来源流式传输。
  3. 从本地设备存储播放。

从 Google 提供的一个双簧管示例中,我向NDKExtractor.cpp类添加了另一个函数,以提取基于 URL 的音频并将其呈现到音频设备,同时从源读取。

现在我面临的问题是,此代码首先提取所有音频数据并将其保存到缓冲区中,然后该缓冲区成为我从同一示例中的 DataSource 类派生的 AFileDataSource 的一部分。在完成提取整个文件后,它通过调用 Oboe AudioStreamBuilder 的 onAudioReady() 来播放。我需要的是在它流式传输音频缓冲区块时播放。

可选查询:除了问题之外,即使我创建了一个前台服务来与 NDK 函数通信以执行此代码,它也会阻止 UI。对此有什么想法吗?

0 投票
3 回答
677 浏览

ios - 我可以在 iOS 中使用 Google Oboe 或 AAudio 吗?https://github.com/google/oboe

我想使用可以轻松构建高性能音频应用程序的 C++ 库

https://github.com/google/oboe

谷歌双簧管似乎适用于 Android 我可以以某种方式将它用于 iOS 吗?或 iOS 的任何类似替代方案?

由于他们的许可条款,我不想使用 Superpowered!

0 投票
1 回答
253 浏览

android - 为什么 oboe 中名为 OboeSinePlayer 的示例代码在 Android 上一直停止?

我正在将以下页面中的代码添加到 hello world c++ 应用程序中。

https://github.com/google/oboe/blob/master/docs/GettingStarted.md

这是主要活动:

如果我注释掉 oboeSinePlayer(); 然后 MainActivity 保持打开状态,但是当它没有被注释掉时,应用程序会一直停止。

这是 oboeSinePlayer 的代码:

以及相关的头文件:

运行时,听起来 onAudioReady 方法在应用停止之前播放了一次。我相信应该一遍又一遍地调用该方法以提供持续的正弦音。

任何有关如何解决此问题的帮助将不胜感激。感谢您花时间查看我的问题。

我查看了 logcat,发现 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.hellosound-2/base.apk"],nativeLibraryDirectories=[/data /app/com.example.hellosound-2/lib/x86, /data/app/com.example.hellosound-2/base.apk!/lib/x86, /system/lib, /vendor/lib]]]找不到“liboboe.so”

这是我的 CMakeLists.txt

运行一次 onAudioReady 后会导致该错误的原因是什么?

我通过刷新 c++ 代码摆脱了错误,现在我得到了错误

/com.example.gettingstartedoboe A/libc:致命信号 4 (SIGILL),代码 2,tid 15656 (tingstartedoboe) 中的故障地址 0xa94b6a47