我有一个安卓电视应用程序,我正在集成语音识别器。直到今天我才发现安卓电视支持远程麦克风。
使用requireActivity().packageManager.hasSystemFeature(PackageManager.FEATURE_MICROPHONE)
检测设备是否有麦克风很容易,但我认为它不能解释远程麦克风。
我的问题是是否有可能检测到我使用的遥控器是否有麦克风,这样我就可以显示"无音频信号";
我要做的是使用AudioRecord然后调用startRecording()
的函数,之后,你应该通过调用getRecordingState()
来检查记录器的状态。如果录音开始成功,它证明有一个麦克风连接到设备,无论内部或外部。该函数将返回3 (AudioRecord.RECORDSTATE_RECORDING),否则将返回1 (AudioRecord.RECORDSTATE_STOPPED)
private fun checkMicAvailability(audioRecord: AudioRecord): Boolean {
audioRecord.startRecording()
val micCheckAvailability= audioRecord.recordingState == AudioRecord.RECORDSTATE_RECORDING
audioRecord.stop()
audioRecord.release()
return micCheckAvailability
}
请注意,您必须使用AudioRecord构造函数创建它。你可以看看Audio Recorder Documentation