相关疑难解决方法(0)

我们可以访问我的Android手机的麦克风驱动程序

我们可以使用Android NDK访问我的Android手机的麦克风驱动程序吗?如果有,那我该怎么办?

我可以将驱动程序设置为禁用一段时间吗?

我可以检测使用手机麦克风的手机的应用程序名称吗?

根据Android多媒体框架,MediaServer负责打开设备,基于Java的音频应用程序将其作为客户端连接.数据传输发生在Binder上.因此,只有一个进程可以打开音频设备.现在我想知道如何从MediaServer获取信息?任何人都知道这个或任何其他想法,找到哪个应用程序正在使用我的手机麦克风,我不能使用root权限.

c java-native-interface android linux-kernel android-ndk

18
推荐指数
1
解决办法
1029
查看次数

RecognitionListener.onReadyForSpeech()中的DTMF音调被误认为是语音

从您通过startActivityForResult()调用它之前,Google语音搜索会显着延迟,直到显示其对话框,准备好发表演讲.

这要求用户在说话之前始终查看屏幕,等待显示对话框.

所以我想通过实现RecognitionListener并在onReadyForSpeech()中发出DTMF音来生成声音信号而不是对话框,如下面的代码片段所示:

  @Override
  public void onReadyForSpeech(Bundle params) {
    Log.d(LCTAG, "Called when the endpointer is ready for the user to start speaking.");
    mToneGenerator.startTone(ToneGenerator.TONE_DTMF_1);
    try {
      Thread.sleep(50);
    } catch (InterruptedException e) {
      Log.e(LCTAG, "InterruptedException while in Thread.sleep(50).");        
      e.printStackTrace();
    } // SystemClock.sleep(50);
    mToneGenerator.stopTone();
  }
Run Code Online (Sandbox Code Playgroud)

音调听起来很漂亮但是......它也被麦克风"听到",到达语音识别服务并始终产生识别错误ERROR_NO_MATCH.

有办法解决这个问题吗?

android speech-recognition voice-recognition

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

setMicrophoneMute(boolean)在某些设备上不起作用

我在这里找不到任何相关的帖子(但是互联网上的其他小帖子),所以这里是:

AudioManager.setMicrophoneMute(boolean)在我测试的某些特定设备上没有做任何事情:谷歌Nexus S,三星Galaxy S和摩托罗拉Milestone.在任何其他设备上它运作良好.

它甚至保持其"状态"并返回一个布尔值,好像它被静音\取消静音,但它没有静音 - 麦克风继续记录 - 在GSM通话和AudioRecord编程录音中.没有指示性日志消息.

我也搞乱了权限(android.permission.MODIFY_AUDIO_SETTINGS,android.permission.RECORD_AUDIO),这里没什么新东西.

还有其他人遇到过吗?有没有人有解决方法或神奇的解决方案?如果我使用AudioRecord,我只是为这些设备实现自己的"静音" - 我不会传递录制的缓冲区.但它无法帮助我在GSM呼叫中静音麦克风,这是我需要的.

谢谢

----------------更新----------------

见下文.

android

8
推荐指数
3
解决办法
1万
查看次数