android 错误:使用Expo和expo-av时缺少音频录制权限

o2gm4chl  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(145)

我正在使用Expo开发一个应用程序,遇到了音频录制权限问题。当我尝试通过单击应用程序中的按钮开始录制时,我在控制台中收到以下错误消息:

  1. LOG Requesting permissions..
  2. LOG Starting recording..
  3. ERROR Failed to start recording [Error: Missing audio recording permissions.]

没有对话框显示请求麦克风权限,我还修改了startRecording函数行中请求权限的地方,我添加了. then和. catch,但它直接转到catch语句,这意味着权限被自动拒绝
我尝试了以下步骤来解决此问题:
通过在"microphonePermission"配置中包含expo-av插件,在我的app.json文件中添加了必要的麦克风权限。
已验证是否在app.json文件中设置了麦克风权限消息"Allow Anonimia to access your microphone."。
更新了app.json中的plugins部分,以删除expo-image-picker插件配置中值为false的microphonePermission键。
重新构建了开发客户端,并确保我使用的是最新版本的expo-cli和expo sdk。
尽管进行了这些尝试,但错误仍然存在,我无法在应用程序中开始录制音频。我将非常感谢任何关于如何解决这个问题的见解或指导。提前感谢您的帮助。
下面是startRecording函数:

  1. async function startRecording() {
  2. try {
  3. console.log("Requesting permissions..");
  4. await Audio.requestPermissionsAsync();
  5. await Audio.setAudioModeAsync({
  6. allowsRecordingIOS: true,
  7. playsInSilentModeIOS: true,
  8. });
  9. console.log("Starting recording..");
  10. const { recording } = await Audio.Recording.createAsync(
  11. Audio.RecordingOptionsPresets.HIGH_QUALITY
  12. );
  13. setRecording(recording);
  14. setIsRecording(true);
  15. console.log("Recording started");
  16. } catch (err) {
  17. console.error("Failed to start recording", err);
  18. }
  19. }

这是我的app.json

  1. {
  2. "expo": {
  3. "userInterfaceStyle": "automatic",
  4. "name": "Anonimia",
  5. "slug": "anonymous-chat",
  6. "description": "Anonymous chat app",
  7. "version": "1.0.0",
  8. "orientation": "portrait",
  9. "icon": "./assets/icon.png",
  10. "userInterfaceStyle": "light",
  11. "splash": {
  12. "image": "./assets/splash.png",
  13. "resizeMode": "contain",
  14. "backgroundColor": "#ffffff"
  15. },
  16. "assetBundlePatterns": ["**/*"],
  17. "ios": {
  18. "supportsTablet": true,
  19. "bundleIdentifier": "app.anonimia.messenger"
  20. },
  21. "plugins": [
  22. "@react-native-firebase/app",
  23. [
  24. "expo-image-picker",
  25. {
  26. "photosPermission": "Allow Anonimia to open photos",
  27. "cameraPermission": "Allow Anonimia to open the camera",
  28. }
  29. ],
  30. [
  31. "expo-av",
  32. {
  33. "microphonePermission": "Allow Anonimia to access your microphone."
  34. }
  35. ]
  36. ],
  37. "android": {
  38. "backgroundColor": "#222831",
  39. "package": "app.anonimia.messenger",
  40. "adaptiveIcon": {
  41. "foregroundImage": "./assets/adaptive-icon.png",
  42. "backgroundColor": "#ffffff"
  43. },
  44. "googleServicesFile": "./google-services.json"
  45. },
  46. "web": {
  47. "favicon": "./assets/favicon.png"
  48. },
  49. "extra": {
  50. "eas": {
  51. "projectId": "682e0444-81fd-45b2-8bec-aecdd8b4e48d"
  52. }
  53. }
  54. }
  55. }
vngu2lb8

vngu2lb81#

你解决了吗你介意告诉我哪里出了问题吗?

相关问题