问题标签 [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 回答
99 浏览

android - 在 android studio 上使用 Oboe 时出现未知警告选项“-Wshadow-field”错误

我已经使用 android studio 创建了一个 ndk 项目,每个想法都很好,我可以在模拟器上启动我的应用程序而没有任何问题。但是当我将双簧管库添加到我的项目时,当我尝试启动或构建我的应用程序时会出现此错误。我正在为这个应用程序使用 c++14。我认为clang有一些问题,但我不知道如何解决它。

这是错误日志、Cmake 文件和 build.gradle 文件:

错误日志:

CMakeLists.txt:

构建.gradle:

谢谢

0 投票
1 回答
71 浏览

android - 如何在 Android 上预计算 mp3 文件?

我必须制作一个可视化应用程序。我正在使用 AudioPlayer 和 AudioManager 类并使用画布绘制音乐波。但问题是我必须播放音乐!我需要绘制音乐波并将它们保存为 sd 卡中的 png,而不播放音乐。我正在考虑双簧管图书馆,但我找不到任何帮助。

0 投票
2 回答
2625 浏览

c++ - 如何从 wav 文件中获取采样率?

我正在使用双簧管库进行声音播放

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

作为声音文件,我正在使用.wavfile. 据我所知,有一种方法可以从.wav文件头中获取 - 采样率。

所以,问题是 - 如何在 C++ 中以编程方式从任意.wav文件中读取采样率?

0 投票
3 回答
812 浏览

android - 用 FFmpeg 解码的原始 PCM 音频文件或 mp3 文件哪个更快?

我非常深入地开发我的 Android 应用程序,当我第二次弄乱我的音频文件以尝试更长的音频剪辑(1000 毫秒长)时,我现在又遇到了音频故障。在我没有遇到 160 毫秒长的文件出现任何故障之前。

  • 背景:我正在制作一个节拍器,所以想象一下回调中大约有 100 行代码来不断确定要播放什么音频文件以及播放多长时间。

没有进入我的代码,我只是想知道文件大小或文件类型是否对性能有任何影响?我相信我正在使用示例Player渲染类(源)(用于原始文件输入),它似乎在每个回调中加载文件的音频数据。这可能会从更大的数组中加载数据会减慢速度?虽然,它也可能是我添加到回调中的新功能/逻辑。

我知道人们经常谈论使用 mp3 和使用 FFmpeg 解码。有没有人在 mp3 和 raw 之间进行过任何基准测试,使用 mp3 是否有任何性能优势,或者主要是为了减少您的 APK 大小?

抱歉,如果这已在某处讨论过,但是,我无法找到任何文章提到这两种文件类型之间的这一方面。更仔细地观察渲染类,我的直觉告诉我文件大小“不应该”是一个因素......否则我会继续调试,如果可以的话,可能会得到一些系统跟踪。

0 投票
1 回答
78 浏览

c++ - 我可以在双簧管中添加和/或替换音频源而不重新启动音频流吗?

我需要即时提取音频资产并将它们加载到时间线中进行播放。

我还需要渲染不同长度的资产文件,但我有一个想法,我明天要尝试一下,我认为如果有人有任何提示会很棒的话。

我一直在玩双簧管 RhythmGame代码,这是双簧管样本中最接近我想要做的事情。但是当我尝试动态添加或更改音频源时,它并不高兴。

这是双簧管可以做的事情,还是我必须为每组新文件循环打开和关闭音频流?

0 投票
1 回答
396 浏览

android - Android NDK:如何替换 AAsset 以处理来自外部存储的文件以进行 FFmpeg 解码

我使用双簧管的 RhytmGame 示例作为指导,FFmpeg在我的应用程序中实现双簧管和 mp3 解码。由于我对 NDK 和 C++ 初学者还很陌生,所以我仍然在为遇到的一些基本概念而苦恼。我的问题:上面提到的示例只处理资产文件夹中的文件,使用 Android 的 AssetManager 的本机实现。由于我希望访问外部存储上的文件,因此我必须更改此设置,但我不清楚如何执行此操作。

这就是我卡住的地方:我有一个FFmpegExtractor类调用这个方法FFmpeg's avio.h

调用在这里:

我正在寻找替换asset,readseek参数,以便我可以使用存储中的文件而不是 AAsset 对象。

这是read上面传递的回调:

这是seek回调:

我试过用 FILE 替换 AAsset,但当然不行。我知道如何打开和读取文件,但我不清楚这是否是这里所期望的,以及如何将 AAsset 中的方法转换为返回存储中文件所需值的操作。谁能指出我正确的方向?

编辑:因为它不适合这里是我在回复@BrianChen 的有用评论时提到的代码块:

不幸的是avformat_open_input()产生了一个
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20 in tid 23767, pid 23513

0 投票
1 回答
331 浏览

android - 处理来自 Android 的 RAW 音频数据

自从试图从麦克风获取原始音频流以来,我一直在苦苦挣扎。我正在尝试不同的方式:使用双簧管库(AAudio 和 OpenSL ES 实现)和 Android 的 AudioRecord Java 类的低级 JNI 方式。

我面临的问题是我无法检索接近 -/+1.0 的幅度,同时确保使用具有如此高幅度的校准纯音使麦克风输入饱和。我认为问题在于我无法有效地禁用 AndroidOS 的信号预处理(自动增益控制或降噪)。

(不工作!)

此外,似乎也无法禁用任何其他麦克风而不是“选定”的麦克风(就像选择setPreferredDeviceonAudioRecord实例一样)。用作音频源:未处理、mic、voice_recognition。

反正有这样做还是我错过了什么?

谢谢

0 投票
0 回答
1720 浏览

android - 来自 /system/lib/libhwui.so 的信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR)

这个问题是由 android 运行时引起的。知道这是什么吗?

我在这里使用本机代码,它在后台播放音频文件。当我刚开始使用应用程序的 ui 时,就会弹出这个问题。

该应用程序在 android 7 中运行良好,但在 android 10 上特别是在三星设备上中断。

0 投票
1 回答
492 浏览

android - 如何编译双簧管库示例应用程序?

我正在尝试在 Google 的双簧管库中编译 LiveEffects 示例应用程序:https ://github.com/google/oboe/tree/master/samples/LiveEffect

我已经下载了整个 Oboe 项目并保持其文件夹结构完整我已将项目加载到 Android Studio 的 oboe-master/samples/LiveEffect 文件夹中

我没有进行任何更改,但 Android Studio 中的设备列表下拉框以及编译和运行按钮(绿色三角形)被禁用,并且当 NDK 已经安装并且我点击 gradle sync 时会出现错误 NDK not configured可以在这台电脑上编译其他的NDK项目。

我需要做什么来编译 Oboe 示例代码(不做任何更改)?

0 投票
1 回答
378 浏览

android - 无法更改 NDK 双簧管 LiveEffect 示例代码中的音频源

我已经从这里下载了基于 Oboe 库的 LiveEffect 示例代码:https ://github.com/google/oboe/tree/master/samples/LiveEffect

我已经能够在带有 Android 8.0 的三星 Galaxy S7 上构建和运行它

为 NDK 选择 AAudio 库时,该程序按预期工作,但在选择 OpenSL ES 库时,音频始终采用默认路由。我想将手机的内置麦克风作为音频输入,同时将带有麦克风的外置耳机的扬声器作为输出,但是如果连接了耳机麦克风,即使我选择手机内置麦克风,音频输入也始终默认为耳机麦克风在应用程序的用户界面中。在仅支持 OpenSL ES 的搭载 Android 7 的三星 Galaxy S6 中也可以看到同样的行为。

我也没有找到如何在 Google 的基于 NDK 的音频回声示例程序中更改音频输入的方法,该示例程序也使用 OpenSL Es。使用基于 OpenSL ES 的 NDK 音频时如何指定音频输入源?这是一个错误吗?