【发布时间】:2020-11-03 02:03:37
【问题描述】:
我正在尝试使用 react-native-live-audio-stream 库。但是,我得到了麦克风许可的错误。
我正在关注this exact link 如何设置它。
这是我的记录器组件:
import React from 'react';
import {TouchableOpacity, View} from 'react-native';
import LiveAudioStream from 'react-native-live-audio-stream';
export default function Recorder() {
const options = {
sampleRate: 32000, // default is 44100 but 32000 is adequate for accurate voice recognition
channels: 1, // 1 or 2, default 1
bitsPerSample: 16, // 8 or 16, default 16
audioSource: 6, // android only (see below)
};
LiveAudioStream.init(options);
LiveAudioStream.on('data', (data) => {
// base64-encoded audio data chunks
});
return (
<View>
<TouchableOpacity onClick={LiveAudioStream.start()}>
<Text>Start recording!</Text>
</TouchableOpacity>
</View>
);
}
我得到的错误是:
startRecording() called on an uninitialized AudioRecord.
所以我开始调查许可的事情......这是我到目前为止所得到的:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="Manifest.permission.RECORD_AUDIO"/>
在 AndroidManifest.xml 中
通过像这样添加对麦克风的请求:
const requestMicrophone = async () =>{
if (ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(),
new String[]{Manifest.permission.RECORD_AUDIO},
REQUEST_MICROPHONE);
}
我得到以下错误:
[![ActivityCompat.requestPermissions(getActivity(),new String\[\]{Manifest.permission.RECORD_AUDIO},
关于如何解决这个问题的任何想法?
编辑: 我修复了错误!录音机中与音频相关的东西需要放在一个函数中,通过开始录音来调用。
【问题讨论】:
标签: android reactjs react-native permissions microphone