【发布时间】:2017-07-24 01:42:41
【问题描述】:
是否可以在不使 MediaPlayer 播放的音乐静音的情况下使 SpeechRecognizer 的哔声静音?
这里代码:
speech = SpeechRecognizer.createSpeechRecognizer(this);
speech.setRecognitionListener(this);
recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName());
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);
timer = new Timer();
timer.schedule(new UpdateTimeTask(),500,2000);
MediaPlayer mp = new MediaPlayer();
AssetFileDescriptor afd = getResources().openRawResourceFd(R.raw.breathe);
mp.reset();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
myAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, 0, 0);
try {
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mp.prepare();
}
catch (IOException e) {
e.printStackTrace();
}
mp.start();
class UpdateTimeTask extends TimerTask {
public void run() {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
speech.stopListening();
speech.startListening(recognizerIntent);
}
});
}
音频对焦无法解决问题,正在播放音乐,我能听到哔哔声
我不能将STREAM_MUSIC(或整个STREAM_SYSTEM)静音,因为我将它用于MediaPlayer
静音STREAM_ALARM 不适用于SpeechRecognizer
那么如何在 MediaPlayer 播放音乐时将哔声静音
更新
boolean gotFocus = requestAudioFocusForMyApp(MainActivity.this);
if (gotFocus) {
MediaPlayer mp = new MediaPlayer();
AssetFileDescriptor afd = getResources().openRawResourceFd(R.raw.breathe);
mp.reset();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
myAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, 0, 0);
try {
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mp.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
}
反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码反多反码p>
【问题讨论】:
-
您是在询问“是”和“否”的答案,还是在询问如何做?如果您询问如何做,您应该在帖子中包含您的代码。
-
阅读本文。它说,您一次只能将音频焦点集中在一个源上。 developer.android.com/reference/android/media/…
-
@UmarZaii 添加
-
@user924,我从来没有拒绝过。这是常见的问题之一。您必须将音乐与播放音乐的活动绑定。看我的回答。
标签: android speech-recognition