【发布时间】:2022-08-22 04:26:31
【问题描述】:
概括
背景:我正在尝试使用 React Native、Expo 和 Expo-AV 制作一个计时器应用程序。
我正在初始化一个具有托管工作流程并尝试播放 mp3 文件的股票应用程序使用expo-av (9.2.3)。我看到another issue 在 Moto G5、Android 8 上没有播放声音。对我来说,无法在 Moto G6 Android 9、iPhone SE iOS 14.6 或网络上播放声音。App.json 和 package.json 已附上。
托管或裸工作流?
管理
这发生在什么平台上?
安卓、网络
SDK 版本(仅限托管工作流)
42.0.3
环境
Expo CLI 4.9.0 环境信息:
- 系统: 操作系统:Windows 10 10.0.19042
- 二进制文件: 节点:14.17.4 - C:\\Program Files\\nodejs\\node.EXE, npm: 6.14.14 - C:\\Program Files\\nodejs\\npm.CMD
- IDE: Android Studio:版本 2020.3.0.0 AI-203.7717.56.2031.7583922
- npm 包:
- 世博会:~42.0.1 => 42.0.3
- 反应:16.13.1 => 16.13.1
- 反应域:16.13.1 => 16.13.1
- 反应原生:https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2
- react-native-web: ~0.13.12 => 0.13.18
- Expo 工作流程:托管
可重现的演示或从空白项目重现的步骤
- 运行
expo init my-app - 运行
expo install expo-av - 将一些 mp3 文件添加到根目录。我正在使用this one。
- 将此代码复制到
app.jsimport { StatusBar } from \'expo-status-bar\'; import React, { useEffect } from \'react\'; import { Audio } from \'expo-av\'; import { StyleSheet, Text, View } from \'react-native\'; export default function App() { useEffect(() => { playSound() }, []); async function playSound() { const sound = new Audio.Sound(); try { await sound.loadAsync(require(\'./sound.mp3\')); await sound.playAsync(); await sound.unloadAsync(); } catch (error) { console.error(error) } } return ( <View style={styles.container}> <Text>Open up App.js to start working on your app!</Text> <StatusBar style=\"auto\" /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: \'#fff\', alignItems: \'center\', justifyContent: \'center\', }, });- 运行
expo start - 在 Moto G6 Android 9.0、iPhone SE iOS 14.6 上预览 Expo Go 应用程序。或通过终端输入
w在网页上打开。
- 运行
标签: android reactjs react-native expo expo-av