问题标签 [audioflinger]

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 回答
1771 浏览

android - 使用 libmedia\AudioFlinger 直接录制\播放音频

我正在检查直接连接到 libmedia\AudioFlinger 以播放\录制原始音频的可能性(如 AudioTrack\AudioRecord 所做的)。

目的是解决这 2 个 Java 类的最小缓冲区大小限制。我知道 2.3 引入了 OpenSL,但我想在 2.2 及以下版本中这样做。

有没有人这样做过?有没有使用它的好的参考实现?如果不是,您将如何链接该库并使用它来解决最小缓冲区大小?

谢谢

0 投票
2 回答
14375 浏览

android - 什么是 AudioFlinger,为什么它会失败 TONE_PROP_ACK?

在我的申请中,我发出以下声明:

这在运行 Android 2.3.3 的廉价 LG LS670 上运行良好,但在我拥有的所有其他手机(从 Android 2.2.1 到 Android 2.3.4)上完全没有声音。

所以我知道操作系统版本在这里不起作用(我还在文档中验证了它从 API 1 开始就受到支持)。

此外,铃声音量和媒体音量都设置为最大值,并且toneGenerator 初始化为:

我验证了Settings.System.DTMF_TONE_WHEN_DIALING它设置为 1。

对这种不一致的行为(在不同的手机上)感到困惑,我检查了发生这种情况时的系统日志,我能够发现的唯一可疑的区别是那些无法发声的手机TONE_PROP_ACK在他们的日志中有这条线:

AudioFlinger的目的是什么,它与静音有什么联系TONE_PROP_ACK

知道如何修复我的代码,以便无论手机型号如何,TONE_PROP_ACK 总是响起吗?

0 投票
0 回答
2332 浏览

android - MediaPlayer 服务器死机

我正在尝试循环播放 mp4 视频,但我的两台设备有问题(在所有其他设备上我的代码工作正常)Motorola Defy 2.2.1Motorola Atrix 4G 2.3

问题是在一次运行后媒体卡住了,我收到了这个错误:

这是我的代码:

0 投票
0 回答
610 浏览

android - 使用原生 android 代码通过 audioflinger 播放声音文件

这正是我想要的。我想知道如何编写一个能够直接访问android中的audio-flinger的C代码。当然,audio-flinger 会导出一些接口。我认为可能有一个 libaudio.so 我将包含在我的编译中,然后调用一个简单的播放函数来实现它。只需给出类似 play("filename"); 任何想法。

干杯瓦沙里

0 投票
2 回答
2135 浏览

android - AudioFlinger 无法创建音轨,状态:-12,使用原生 CocosDenshion 循环音效时,cocos2d-x

每当我尝试使用 CocosDenshion 和 cocos2d-x 循环声音时,我都会收到以下错误: 我的错误

我使用的是稳定的 cocos2d-2.0-x-2.0.2,我的代码是:

这发生在我的手机(Samsung Galaxy S III,verizon)和安卓模拟器上,都是 4.0 版,ICS。

我能做些什么?

0 投票
2 回答
5214 浏览

android - Android AudioTrack 中的“status -12”是什么意思?

使用 Android soundpool/audioTrack 时,我不断收到以下错误:

谁能解释一下-12是什么?它是源代码中一些枚举的值吗?

我已经看到了其他处理错误的问题,-12但我没有明确地看到这个常数实际上代表什么。有人知道 AudioFlinger 的可能状态列表吗?我也看到过错误-22,但我也不知道这意味着什么。

由源代码或文档支持的答案是最好的,但我会在这一点上获取我能获得的任何信息。

0 投票
1 回答
853 浏览

android - Between AudioTrack.write and AudioFlinger.read

I am checking the possibility of this way, if I got any silly thinking, please correct me. I would like to enhance the audio quality. According to some knowledge from web, I found that When an audio/music/sound is played , the AudioTrack will write() PCM data to the sharedbuffer, and then AudioFlinger will read() the PCM data form this sharedbuffer. The idea is to use a service to intercept the PCM data after it is wrote by AudioTrack.write(), modify the PCM data, and then restore it back to the sharedbuffer for AudioFlinger to read(); Could anyone help/correct me, please?

0 投票
1 回答
5099 浏览

android - 实现自定义 Android 的 libaudio.so 或“音频如何在 Android 上工作?”

我目前正在发现Android> 4.0并且有一些我自己无法解决的问题,也许你可以帮助我。

我发现,一些市场应用程序,如“AlsaMixer”或“MixGet with ALSA”,将一个名为“libaudio.so”的库放入“/system/lib/”(带有用户帮助)。

我想知道发生了什么,经过一段时间的搜索,似乎每个 Android 公司都可以创建一个 libaudio.so,它实现了某个 C++ 接口并将其放入该路径。

Android 然后将这个库用于音频处理(存在 ALSA、TinyALSA 等的实现)?

但是:在我的手机上没有这样的 libaudio.so - 这是如何工作的?否则采取什么措施?我发现我在那个目录中有一个“libasound.so”,这是默认的吗?

如果我尝试实现自己的 libaudio.so(目前我的知识很少),我可以引用其中的“默认”库吗?

我认为“嘿,世界上每部手机都有一个可用的音频实现,我只想扩展它而不是重新设计(重新配置)轮子?

我是说:

AudioFlinger -> 我的自定义 libaudio.so -> default-library (libasound.so?) -> 扬声器

如果我的手机上已经有 libaudio.so 怎么办?

我会非常感谢每一个有用的答案。也许有人给我一个地址,初学者可以理解吗?

在此先感谢和亲切的问候!

0 投票
2 回答
11003 浏览

android - Android MediaPlayer AudioStream AudioFlinger 服务器死机!,致命信号 11

我有两个片段(左和右),并在左片段中获取 Radiostreams 列表。通过单击这些流之一,正确的片段应该更改流的名称并开始使用给定的 uri 播放流。

2 问题:

  1. 一些无线电流不是最新的,所以它们中的很多不再工作了。问题是,这会导致我的应用程序强制关闭!我做了错误处理,但在调用这样的流之后,我得到:

03-20 14:23:28.192: A/libc(1021): 致命信号 11 (SIGSEGV) 在 0x00000000 (code=1)

03-20 14:23:28.192: W/AudioSystem(1021): AudioFlinger 服务器死了!

03-20 14:23:28.192: W/IMediaDeathNotifier(1021): 媒体服务器死机

03-20 14:23:28.192: E/MediaPlayer(1021): 错误 (100, 0)

03-20 14:23:28.192: I/ServiceManager(1021): 等待服务 media.audio_flinger...

03-20 14:23:28.752: I/dalvikvm(1021): threadid=3: 对信号 3 做出反应

03-20 14:23:28.782: I/dalvikvm(1021): 将堆栈跟踪写入“/data/anr/traces.txt”

03-20 14:23:29.192: I/ServiceManager(1021): 等待服务 media.audio_flinger...

我不知道为什么。还有其他方法可以进行错误处理吗?或者有没有办法在调用 mediaPlayer.setDataSource(uri) 之前检查所有流以避免准备 defekt uris?(最后见我的代码)

  1. 我用遥控器控制左边的 ListFragment。当我尝试从一个频道快速切换到另一个频道时,一切都非常滞后。似乎 Mediaplayer 的重新实例化需要很长时间。当我不重新实例化时,当我再次调用 mediaPlayer.setDataSource(..) 时会出现运行时错误。有没有办法在一个 MediaPlayer 对象上调用 .setDataSource 两次?

这是我的代码:我的 MediaPlayer Wrapper 类:

这是我的 TestFragment(右片段)。注意:左边的 Fragment 从 TestFragment 调用方法“newChannel(radioChannel)”,每次点击一个列表项。

专业人士,你能帮我解决一个或两个问题吗?

0 投票
0 回答
1327 浏览

java - 将电话音频呼叫路由到android中的自定义声音服务?

我已经实现了从 AudioHardwareBase 派生的自定义音频接口,并在 AudioFlinger 构造函数类中对其进行了初始化。此类将通过网络流式传输音频。当我从文件中播放声音时,这可以正常工作,但在拨打电话时却不行。问题可能是因为电话的音频来自硬件,而不是音频文件(来自软件)。为了完成这项工作,我愿意修改基本的 android 库/驱动程序。知道如何克服这个问题吗?

谢谢