React Native Sound Error: RNSound的参数1 (RCTResponseSenderBloc



据我所知,我正在加载正确的资源。然而,当我尝试使用React Native sound播放声音时,我仍然得到以下错误:

Argument 1 (RCTResponseSenderBlock) of RNSound.play must not be null

如何修复这个错误?

我已经检查了保存声音对象的变量,它看起来像是加载的:

LOG  this.outgoingCall {"_duration": 18.1811875, "_filename": "http://localhost:8081/assets/assets/sounds/dialing.mp3?platform=ios&hash=717d95726264d7105360ce45119c9e0e", "_key": 35, "_loaded": true, "_numberOfChannels": 2, "_numberOfLoops": 0, "_pan": 0, "_pitch": 1, "_playing": false, "_speed": 1, "_volume": 1, "onPlaySubscription": {"remove": [Function remove]}, "registerOnPlay": [Function anonymous]}
LOG  this.incomingCall {"_duration": 5.224458333333334, "_filename": "http://localhost:8081/assets/assets/sounds/calling.mp3?platform=ios&hash=0707a09b5a0268a9cb3e6f9b8d5b32ec", "_key": 36, "_loaded": true, "_numberOfChannels": 2, "_numberOfLoops": 0, "_pan": 0, "_pitch": 1, "_playing": false, "_speed": 1, "_volume": 1, "onPlaySubscription": {"remove": [Function remove]}, "registerOnPlay": [Function anonymous]}
LOG  this.endCall {"_duration": 1.306, "_filename": "http://localhost:8081/assets/assets/sounds/end_call.mp3?platform=ios&hash=90aad40264cc274ce67046ab241054c0", "_key": 37, "_loaded": true, "_numberOfChannels": 2, "_numberOfLoops": 0, "_pan": 0, "_pitch": 1, "_playing": false, "_speed": 1, "_volume": 1, "onPlaySubscription": {"remove": [Function remove]}, "registerOnPlay": [Function anonymous]}

如果你只是继续直到最后,你会看到错误时,点击呼叫按钮…

ConnectyCube的示例代码工作完美,但它使用旧的react导航。下面是ConnectyCube示例代码的链接:

https://github.com/ConnectyCube/connectycube-reactnative-samples/tree/master/RNVideoChatConf

我基本上只是使用最新的反应导航,但其余的代码是相同的connectycube的样例代码,但它不工作相同....我得到React Native Sound Error…

看起来在您的javascript中,v0.11.1中的.play()方法由于此提交而需要回调https://github.com/zmxv/react-native-sound/commit/ed05fb96f06bbdfc83499b6ced04043f90fbf07d(删除默认回调)。

它可能会在未来的版本中修复,或者可能会更新文档以更改方法签名以要求回调。

现在你可以添加一个回调,错误应该会消失

.play((success)=> console.log(success))

这不是最好的答案,但它仍然有效。在示例代码包中。Json有:"react-native-sound" "^0.11.0"当我遇到这个问题时,我正在使用最新的react-native-sound 0.11.X版本

我最初安装只是使用npm i react-native-sound并接受它给我的任何版本,我认为这是最新的版本。

遇到上述问题后,我决定通过:npm install react-native-sound@0.11.0安装完全相同的代码版本这就解决了问题....

这里不多可以做除了看和信任的错误。它说参数不能为空。

我会从这个错误消息中获取信息,并检查您是否在某个地方组件的第一次渲染期间将null传递给play方法。

这是可能的,你有一个状态值或道具的某个地方,是空的,只有在第一次渲染,并从useEffectplay后调用类似的方法获得它的值。

我有同样的问题,版本没有改变,但对于其他问题,我删除了pods/npm并重新安装。不知道发生了什么变化

给play函数添加一个回调解决了这个问题

if (this.shortBeep) this.shortBeep.play((success) => {
if (!success) {
console.log('Sound did not play')
}
});

相关内容

  • 没有找到相关文章