'uri.match' не определен при попытке ввести аудиофайл в источник видео - PullRequest
0 голосов
/ 03 октября 2018

Вот мой код вокруг этого <Video /> элемента

class Menu extends Component {
    ...
    audioFile = null
    componentWillMount(){
        this.audioFile = require('../../assets/audio/subtle.mp3');
    }
}

<Video source={{uri: this.audioFile}}   // Can be a URL or a local file.
  ref={(ref) => {
    this.player = ref
  }}
  onError={this.audioError} 
  audioOnly
  style={styles.backgroundVideo}
  playInBackground
  playWhenInactive
  ignoreSilentSwitch={"ignore"}  
/>

Конкретная ошибка, которую я получаю ...

TypeError: uri.match is not a function. (In 'uri.match(/^\//)', 'uri.match' is undefined)

Вот версии

expo: 30.0.0

expokit: 1.7.1

react: 16.3.1

react-native: https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz

react-native-video: 3.2.1

Я пытаюсьзагрузите аудиоустройство из локального пакета здесь, но я не могу заставить его работать, если я удаляю аудиофайл из этой папки, он выдает ошибку, что не может найти его, поэтому он определенно находит файл.

Хотелось бы помочь с этим

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Это то, что заставило его работать в моем случае использования

<Video source={require('../../assets/audio/file.mp3')} ... />

0 голосов
/ 24 мая 2019

Я нашел решение.Сама переменная audioFile содержит ключ uri.

Так что вместо

<Video source={{uri: this.audioFile}}   // Can be a URL or a local file.
  ...
  ...
/>

попробуйте это:

<Video source={this.audioFile}   // Can be a URL or a local file.
  ...
  ...
/>

Обратите внимание, что я прошелthis.audioFile к источнику.

И более важно то, что для отображения видео необходимо передать высоту и ширину.

...