Как можно воспроизвести фоновый звук на реагирующем родном выставочном проекте через expo-av? - PullRequest
1 голос
/ 10 октября 2019

Я бы хотел воспроизвести фоновый звук на выставочном проекте «Реактив-натив». Для этого я использовал библиотеку expo-av. Но я не смог воспроизвести его и получил какую-то ошибку.

Ошибка:

[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

введите описание изображения здесь Это мой код для перекуса. https://snack.expo.io/@milutin/58ff49.

Пожалуйста, помогите мне.

Спасибо.

1 Ответ

1 голос
/ 10 октября 2019

То, что вы делали неправильно, передавало звуковой файл свойству uri, которое ожидало URL файла, а не самого файла.

Так что все, что вам нужно сделать, это удалитьобъект, который вы передали в качестве первого аргумента, и замените его просто оператором require.

const playbackObject = await Audio.Sound.createAsync(
  require('./assets/countDown.mp3'),
  { shouldPlay: true }
);

playbackObject.playAsync();

Вот бегущая закуска

...