在Android的SpeechRecognizer类中,没有提供直接禁止播放“滴一声”的方法。这个声音是由操作系统控制的,无法通过SpeechRecognizer类的设置来更改。

然而,你可以通过一些变通的方式来实现类似的效果。一种方法是在开始识别之前将设备的音量设置为静音,然后在识别完成后将音量恢复到之前的状态。这样,虽然还是会有“滴一声”的音效,但是用户无法听到。

下面是一个示例代码,演示如何在开始识别之前将音量设置为静音,识别完成后恢复音量:

import android.content.Context;
import android.media.AudioManager;
import android.speech.RecognitionListener;
import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer;

public class MySpeechRecognizer {
    private Context context;
    private SpeechRecognizer speechRecognizer;
    private AudioManager audioManager;
    private int originalVolume;

    public MySpeechRecognizer(Context context) {
        this.context = context;
        speechRecognizer = SpeechRecognizer.createSpeechRecognizer(context);
        audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    }

    public void startListening(RecognitionListener listener) {
        // 将音量设置为静音
        originalVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);

        // 开始识别
        speechRecognizer.setRecognitionListener(listener);
        speechRecognizer.startListening(RecognizerIntent.getVoiceDetailsIntent(context));
    }

    public void stopListening() {
        // 停止识别
        speechRecognizer.stopListening();

        // 恢复音量
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);
    }
}

使用上述代码,你可以通过调用startListening方法来开始识别,并传入一个RecognitionListener来接收识别结果。识别完成后,调用stopListening方法来停止识别,并恢复音量。

请注意,这种方法只对SpeechRecognizer类的开始和停止识别时的声音有效,对于其他应用或系统级别的声音无法控制

android 谷歌识别SpeechRecognizer开始识别时会播放滴一声有没有办法让它不播滴一声

原文地址: https://www.cveoy.top/t/topic/hMuq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录