标签: qualcomm

Android AudioRecord强制另一个流到MIC音频源

更新3:我与另一位开发人员合作,我们似乎找到了一个可以为一大笔钱做这件事的人.他们给我们发了一个测试apk,它似乎工作.我们将继续购买该来源.我希望我们不会被骗.我发现后我会更新

更新2:仍在努力.在经历了更多痛苦的日子后,我现在认为没有任何花哨的事情发生,但他们只是在原生方使用AudioFlinger(请参阅链接)来调用AudioFlinger :: setParameters

我现在正在寻找如何编写一个简单的JNI来调用AudioFioger :: setParameters with audio_io_handle_t ioHandle,const String8&keyValuePairs

我知道keyValuePairs可以是什么,但不是关于audio_io_handle_t的线索

更新:我现在相信其他应用可能正在使用QF音频与CAF.请参阅链接上的 audio_extn_utils_send_audio_calibration

链接中的 voice_get_incall_rec_snd_device 相同

我没有C/++知识.我怎样才能知道我是否可以从原生方面调用这些方法?由于其他应用程序可以,必须有一种方法.


我每天至少要工作5-6个小时,一直在努力奋斗40天.我不确定是否允许这样做,但我很乐意为正确答案捐款.

我有一个使用VOICE_CALL音频源的通话录音应用程序.尽管ASOP没有实现/授权,但大多数制造商已经实施了VOICE_CALL,使用VOICE_CALL音频源的应用在许多设备上运行良好.那是直到Android 6.

谷歌改变了Android 6的这种行为.现在打开VOICE_CALL音频源需要android.permission.CAPTURE_AUDIO_OUTPUT,它只被授予系统应用程序.

这基本上会停止通话记录,或者它应该有.好吧,它确实为我和200多个其他通话录音应用程序,除了3个已找到解决此限制的方法.

我一直在使用Android 6在许多不同的手机上尝试这些应用程序,并在他们设法记录的方式中发现了某些特征.

他们都使用Android AudioRecord类并打开MIC音频源.我也做; 但在我的应用程序中,我只从MIC而不是另一方获得音频.我发现的是告诉我他们在开始录制之前或之前发出了某种系统调用.

看一下成功记录VOICE_CALL的应用程序之一的以下日志形式,即使它使用MIC进行记录.看起来应用程序是如何管理混合/路由/流/合并VOICE_CALL音频源到MIC.

- D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=1;routing=-2147483644
- D/PermissionCache: checking android.permission.MODIFY_AUDIO_SETTINGS for uid=10286 => granted (432 us)
- D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=4;routing=-2147483584;format=1
- D/audio_hw_primary: select_devices: out_snd_device(0: ) in_snd_device(283: voice-dmic-ef)
- D/hardware_info: hw_info_append_hw_type : device_name = voice-dmic-ef
- D/voice: voice_get_incall_rec_snd_device: in_snd_device(283: …
Run Code Online (Sandbox Code Playgroud)

c java android android-ndk qualcomm

81
推荐指数
1
解决办法
6404
查看次数

Android Qualcomm BoostFramework()

我经常在logcat监视器中收到这种消息:

12-13 06:09:57.819 25049-25049/? V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@9759349
Run Code Online (Sandbox Code Playgroud)

有人可以解释它是什么意思以及触发该BoostFramework()功能的是什么?

谢谢.

android qualcomm

9
推荐指数
1
解决办法
3955
查看次数

Android/Ok Google/Snapdragon语音激活/ Hexagon DSP

Hexagon DSP处理器允许在待机状态下激活您的设备https://qualcomm.com/videos/snapdragon-voice-activation.一些Android设备支持此功能,例如Google Pixel对关键词"Ok Google"做出反应.在android的源代码中,我找到了负责将关键短语加载到DSP处理器的代码(Hexagon DSP处理器内置于Qualcomm处理器中):

自由软件 :和安全网/system/sound_trigger.h

声音模型描述结构sound_trigger_sound_model传递方法stdev_load_sound_model.声音模型结构:

/*
 * Base sound model descriptor. This struct is the header of a larger block passed to
 * load_sound_model() and containing the binary data of the sound model.
 * Proprietary representation of users in binary data must match information indicated
 * by users field
 */
struct sound_trigger_sound_model {

    sound_trigger_sound_model_type_t type;        /* model type. e.g. SOUND_MODEL_TYPE_KEYPHRASE */
    sound_trigger_uuid_t             uuid;        /* unique sound model ID. */
    sound_trigger_uuid_t             vendor_uuid; …
Run Code Online (Sandbox Code Playgroud)

speech-recognition voice-recognition android-source hexagon-dsp qualcomm

6
推荐指数
0
解决办法
824
查看次数

QEMU MIPS32 - 定制板上的 16550 Uart 实现

我正在尝试使用 QEMU 来模拟一段固件,但我无法让 UART 设备正确更新线路状态寄存器并显示输入字符。

细节:

目标设备:Qualcomm QCA9533(如果您好奇,请在此处查看文档

目标固件:VxWorks 6.6 with U-Boot bootload

CPU:MIPS 24Kc

板:mipssim(修改)

内存:512MB

使用的命令: qemu-system-mips -S -s -cpu 24Kc -M mipssim –nographic -device loader,addr=0xBF000000,cpu-num=0 -serial /dev/ttyS0 -bios target_image.bin

我必须在这里道歉,但我无法分享我的来源。但是,当我尝试重新调整 mipssim 板时,我只对代码进行了微小的更改,如下所示:

  • bios内存区域重新设置为 0x1F000000

  • 将 load_image_targphys ()目标地址更改为 0x1F000000

  • 将 $pc 初始值更改为 0xBF000000(TLB 重映射 0x1F000000)

  • mipssim serial_init() ¬call 替换为serial_mm_init(isa, 0x20000, env->irq[0], 115200, serial_hd(0), DEVICE_NATIVE_ENDIAN)

虽然看起来serial_init()可能是当前接受的标准,但我没有重新映射它的运气。我注意到马耳他板在我给它的 MIPS 测试内核上输出没有问题,所以我试图模仿那里做了什么。但是,我仍然无法理解 QEMU 是如何工作的,而且我无法找到许多解释它的好资源。我对源代码和包含的文档的搜索正在进行中,但与此同时,我希望有人可能对我做错了什么有一些了解。

二进制文件从地址 0xBF000000 加载并正确执行,但在遇到第一个 UART 轮询循环时挂起。在 QEMU 监视器中查看mtree显示 …

qemu mips emulation uart qualcomm

6
推荐指数
1
解决办法
470
查看次数

Windows on ARM(Snapdragon 835/850)上的Java?

选择了具有Snapdragon 835 ARM处理器(ARMv8)的HP Envy X2。在Windows设备上是否存在可用于Windows的Oracle JDK或OpenJDK构建?还是我最好的选择是使用x86版本(它将在仿真下运行)?

java windows arm qualcomm

5
推荐指数
0
解决办法
515
查看次数