Искал использование недавно доступных пакетов 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 для двух пакетов.