Expo-AV Sound.playAsync()在expo-av 9.2.3和Expo 42.0.3中不起作用

619 阅读1分钟

摘要

背景:我试图用React Native、Expo和Expo-AV制作一个计时器应用。

我正在用Managed工作流初始化一个库存应用程序,并试图用 expo-av (9.2.3)播放一个MP3文件。我看到另一个问题,在Moto G5,Android 8上没有声音播放。对我来说,Moto G6 Android 9, iPhone SE iOS 14.6, 或在网络上都不能播放声音。 App.jsonpackage.json

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
  • 集成开发环境:Android Studio。版本2020.3.0.0 AI-203.7717.56.2031.7583922
  • npmPackages:
    • expo:~42.0.1 => 42.0.3
    • react: 16.13.1 => 16.13.1
    • react-dom: 16.13.1 => 16.13.1
    • react-native:github.com/expo/react-…=> 0.63.2
    • react-native-web:~0.13.12 => 0.13.18
  • 世博会工作流程:管理

可复制的演示或从一个空白项目中复制的步骤

  1. 运行expo init my-app
  2. 运行expo install expo-av
  3. 在根目录中添加一些MP3文件。我正在使用这个
  4. 把这段代码复制到app.js
import { 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',
  },
});
  1. 运行expo start
  2. 在Moto G6 Android 9.0, iPhone SE iOS 14.6的Expo Go应用程序上预览。或者用终端输入w ,在网上打开。