Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native react native audio toolkit,iPlay不工作_React Native - Fatal编程技术网

React native react native audio toolkit,iPlay不工作

React native react native audio toolkit,iPlay不工作,react-native,React Native,以上是我缩减到的最低代码,音频曲目确实播放,但是console.log(Player.isplay)总是返回“false”,但音频文件正在运行。任何关于为什么这不起作用的信息。我只能怀疑它与MediaState有关,但没有成功地使任何东西起作用。如果您有使用此软件包的经验,我们将非常感谢您的意见 文档:编辑:固定和测试;答案是我的原创和马哈茂德的答案的结合 如果您在文档上方查看play方法,您将看到prepare(函数回调)的文档。其中指出: …否则,调用play()时会准备好文件,这可能会导致

以上是我缩减到的最低代码,音频曲目确实播放,但是console.log(Player.isplay)总是返回“false”,但音频文件正在运行。任何关于为什么这不起作用的信息。我只能怀疑它与MediaState有关,但没有成功地使任何东西起作用。如果您有使用此软件包的经验,我们将非常感谢您的意见


文档:

编辑:固定和测试;答案是我的原创和马哈茂德的答案的结合

如果您在文档上方查看
play
方法,您将看到
prepare(函数回调)
的文档。其中指出:

…否则,调用play()时会准备好文件,这可能会导致较小的延迟

这意味着,如果您在调用
play()
之后立即检查
.isplay
属性,则无法保证在执行
console.log(Player.isplay)
时文件确实正在播放

还有第二个问题,
.isplay
不是
Player
类的静态属性,不管它在文档中是如何显示的。它实际上是播放音频文件需要创建的
播放器
实例的属性

如果您希望看到
.isplay
确实工作正常,一个可能的检查是在传递到
.play()
的回调函数中运行代码,如文档所示:

播放(函数?回调)

开始播放

如果给出回调,则在播放开始时调用回调

因此,一个简单的示例是这样编写示例代码(保存创建的实例,然后登录回调):

我创建了一个新项目来测试这一点,如果您运行上述代码,您将看到以下打印出来的内容说明了问题:

componentDidMount(){
    const p = new Player("some_audio_file.mp3").play(() => console.log('in callback', p.isPlaying));
    console.log('immediately after play', p.isPlaying);
}

isplay
不是组件播放器中的静态方法,因此您不能使用
Player。isplay
,您可以从该播放器的创建实例(对象)中获取
isplay

尝试保留播放器对象的引用,然后访问其子对象:

this.player=新播放器(“some\u audio\u file.mp3”).play()

然后记录:


console.log(this.player.isplay)

太棒了!顺便说一句,我目前在iOS上使用RN音频工具包时遇到了一个奇怪的问题。。它停止在随机的地方玩,并且怀疑你以前是否遇到过这个问题?
componentDidMount(){
    const p = new Player("some_audio_file.mp3").play(() => console.log('in callback', p.isPlaying));
    console.log('immediately after play', p.isPlaying);
}
immediately after play false
in callback true