expo-av bare Ошибка: отсутствуют права на запись звука - PullRequest
0 голосов
/ 16 мая 2019

Искал использование недавно доступных пакетов expo для отсоединенных или "голых" приложений в реагирующем.

Обнаружена следующая ошибка:

Ошибка: отсутствуют разрешения на запись звука.

однако я уже вызвал библиотеку expo-permissions, чтобы гарантировать получение разрешений RecordAudio.

См. https://github.com/Glorifundel/bareaudio для полного примера проекта

App.js

import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View, Button } from 'react-native';
import * as Permissions from 'expo-permissions';
import { Audio } from 'expo-av';

export default class App extends Component {
  render() {
    return (
      <View style={{ flex: 1 }}>
        <Text style={styles.welcome}>Welcome to React Native!</Text>
        <Button title="Get Permission" onPress={this.onPressPermission} />
        <Button title="Record" onPress={this.onPressRecord} />
      </View>
    );
  }
  onPressPermission = async () => {
    const { status, expires, permissions } = await Permissions.askAsync(
      Permissions.CAMERA_ROLL,
      Permissions.AUDIO_RECORDING
    );
    alert(`permission: ${status}`);
  };
  onPressRecord = async () => {
    const recording = new Audio.Recording();
    try {
      await recording.prepareToRecordAsync(
        Audio.RECORDING_OPTIONS_PRESET_LOW_QUALITY
      );
      await recording.startAsync();
      alert(`onPressRecord recording!`);
    } catch (error) {
      alert(`onPressRecord error: ${error}`);
    }
  };
}

При нажатии кнопки «Получить разрешение» выдается предупреждение «разрешения: предоставлены», после чего при нажатии кнопки «Запись» выдается предупреждение «Ошибка onPressRecord: Ошибка: отсутствуют разрешения на запись звука».

Любое понимание приветствуется,

Подробности среды: Я работаю на Windows 10, на эмуляторе Android с Android API 27 (8.1 Oreo).Сделал свежую установку Node v10.15.3, а также свежую установку response-native-cli expo-cli и сгенерировал проект с помощью expo init --template bare-минимум.Затем следуют инструкции, приведенные в файле readme для двух пакетов.

...