首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过expo-av播放react native expo项目的背景音?

如何通过expo-av播放react native expo项目的背景音?
EN

Stack Overflow用户
提问于 2019-10-10 22:45:31
回答 1查看 1.4K关注 0票数 1

我想在react-native expo项目中播放背景音。为此,我使用了expo-av库。但我不能重现它,我得到了一些错误。

错误:

代码语言:javascript
复制
[Unhandled promise rejection: Error: Cannot load an AV asset from a null playback source]

Stack trace:
  node_modules\expo-av\build\AV.js:115:14 in getNativeSourceAndFullInitialStatusForLoadAsync$
  node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
  node_modules\regenerator-runtime\runtime.js:271:30 in invoke
  node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
  node_modules\regenerator-runtime\runtime.js:135:28 in invoke
  node_modules\regenerator-runtime\runtime.js:170:17 in <unknown>
  node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
  node_modules\promise\setimmediate\core.js:200:23 in doResolve
  node_modules\promise\setimmediate\core.js:66:12 in Promise
  node_modules\regenerator-runtime\runtime.js:169:27 in callInvokeWithMethodAndArg
  node_modules\regenerator-runtime\runtime.js:192:38 in enqueue
  node_modules\regenerator-runtime\runtime.js:216:8 in async
  node_modules\expo-av\build\AV.js:88:7 in getNativeSourceAndFullInitialStatusForLoadAsync
  node_modules\expo-av\build\Audio\Sound.js:89:111 in loadAsync$
  node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
  node_modules\regenerator-runtime\runtime.js:271:30 in invoke
  node_modules\regenerator-runtime\runtime.js:45:44 in tryCatch
  node_modules\regenerator-runtime\runtime.js:135:28 in invoke
  node_modules\regenerator-runtime\runtime.js:170:17 in <unknown>
  node_modules\promise\setimmediate\core.js:45:7 in tryCallTwo
  node_modules\promise\setimmediate\core.js:200:23 in doResolve
  node_modules\promise\setimmediate\core.js:66:12 in Promise
  node_modules\regenerator-runtime\runtime.js:169:27 in callInvokeWithMethodAndArg
  node_modules\regenerator-runtime\runtime.js:192:38 in enqueue
  node_modules\regenerator-runtime\runtime.js:216:8 in async

enter image description here这是我的零食代码。https://snack.expo.io/@milutin/58ff49

请帮帮我。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 23:03:45

因此,您所做的错误是将一个声音文件传递给uri属性,该属性期望该文件的URL,而不是文件本身。

因此,您需要做的就是删除作为第一个参数传递的对象,并将其替换为require语句。

代码语言:javascript
复制
const playbackObject = await Audio.Sound.createAsync(
  require('./assets/countDown.mp3'),
  { shouldPlay: true }
);

playbackObject.playAsync();

这是一个正在运行的snack

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58325606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档