Javascript React native使用React native sound从s3 URL播放音频

Javascript React native使用React native sound从s3 URL播放音频,javascript,reactjs,amazon-s3,react-native,Javascript,Reactjs,Amazon S3,React Native,我对react native和尝试创建音频播放应用程序还不熟悉 我过去也曾达到同样的目标。在文档中,它指定我可以从网络播放该文件。但我找不到任何相同的文档 现在我正在从ROR后端上传音频文件,并将该文件添加到react中的本地文件夹中。 我要把它改成aws s3 音频文件的启动方式如下: var whoosh = new Sound(this.state.soundFile, Sound.MAIN_BUNDLE, (error) => { 其中this.state.soundFile是指

我对react native和尝试创建音频播放应用程序还不熟悉

我过去也曾达到同样的目标。在文档中,它指定我可以从网络播放该文件。但我找不到任何相同的文档

现在我正在从ROR后端上传音频文件,并将该文件添加到react中的本地文件夹中。 我要把它改成aws s3

音频文件的启动方式如下:

var whoosh = new Sound(this.state.soundFile, Sound.MAIN_BUNDLE, (error) => {
其中
this.state.soundFile
是指定文件夹中的本地文件名(字符串)


这是可能的吗?

您可以通过指定url而不设置捆绑来使用react native sound播放远程声音:

import React, { Component } from 'react'
import { Button } from 'react-native'
import Sound from 'react-native-sound'

class RemoteSound extends Component {
  playTrack = () => {
    const track = new Sound('https://www.soundjay.com/button/button-1.mp3', null, (e) => {
      if (e) {
        console.log('error loading track:', e)
      } else {
        track.play()
      }
    })
  }

  render() {
    return <Button title="play me" onPress={this.playTrack} />
  }
}

export default RemoteSound
import React,{Component}来自“React”
从“react native”导入{Button}
从“反应本机声音”导入声音
类RemoteSound扩展组件{
播放曲目=()=>{
const track=新声音('https://www.soundjay.com/button/button-1.mp3,空,(e)=>{
如果(e){
console.log('加载磁道时出错:',e)
}否则{
track.play()
}
})
}
render(){
返回
}
}
导出默认RemoteSound

您看过吗?我正在一个项目中使用它,文档非常清晰。@shmuli谢谢。我遇到了这个。只是想确认在更改整个系统之前,
react native sound
没有出路stuff@shmuli还有一个问题是我找不到任何文件来查找音频的结尾。RNS中提供的内容查找音频结尾是什么意思?@shmuli音频结尾处的回调?如果要在音频播放完毕后继续下一步,当我尝试此操作时,出现错误
无法加载声音
。我遗漏了什么吗?您是否使用我代码片段中的示例文件进行了尝试?请注意,如果您尝试通过http://
获取资产,可能会被阻止:加载声音失败,未找到资源
这正是我收到的错误消息。您能给我一些有关设置的详细信息吗?(物理设备或模拟器,android或ios)您何时创建声音对象?如果它位于构造函数中或componentDidMount上,则可能太早了。在我的例子中的一个按钮上试试,或者在一个超时时间内包装这个结构。它在android的物理设备中。声音正在加载到
组件willmount
import Sound from 'react-native-sound';

const sound = new Sound('http://sounds.com/some-sound', null, (error) => {
  if (error) {
    // do something
  }
  // play when loaded
  sound.play();
});