【发布时间】:2019-06-07 00:13:23
【问题描述】:
我正在 MacBook 上运行 React-Native 应用程序。该应用程序以前适用于 Android。我基本上已经用最新的 react-native 模块重新启动了一个项目。但是,我似乎无法让音频正常工作。
我有以下功能,在点击事件时触发:
playSound(soundfile) {
var s = new Sound(RNFS.DocumentDirectoryPath + '/audio/' + soundfile, Sound.MAIN_BUNDLE, (e) => {
if (e) {
console.log('error', e);
} else {
console.log('duration', s.getDuration());
s.play(()=>{
s.release()
console.log("Sound Resource Released")
})
}
});
}
我已验证声音文件确实存在并且路径正确。但是,上面的代码抛出了一个错误:
{code: "ENSOSSTATUSERRORDOMAIN2003334207", message: "操作 无法完成。 (OSStatus 错误 2003334207。)”,nativeStackIOS: 数组(17),域:“NSOSStatusErrorDomain”,用户信息:{…}}
这个错误到底告诉我什么,我能做些什么来解决它?
更新说明:
声音文件不是静态声音文件,因此未与应用程序打包。相反,用户可以选择从游戏服务器下载的压缩游戏包。游戏包由图像、音频和数据文件组成。 zip 文件已下载并解压缩。图像和数据文件都可以正常工作。但是,无论出于何种原因,音频都无法播放。我再次确认音频文件确实存在于该路径中。
这是错误的 nativeStackIOS 部分:
0: "0 App4 0x0000000106ee30b7 RCTJSErrorFromCodeMessageAndNSError + 135"
1: "1 App4 0x0000000106ee2fe3 RCTJSErrorFromNSError + 275"App4
2: "2 App4 0x00000001070fdff8 -[RNSound prepare:withKey:withOptions:withCallback:] + 1624"
3: "3 CoreFoundation 0x0000000109ac303c __invoking___ + 140"
4: "4 CoreFoundation 0x0000000109ac04d5 -[NSInvocation invoke] + 325"
5: "5 CoreFoundation 0x0000000109ac0926 -[NSInvocation invokeWithTarget:] + 54"
6: "6 App4 0x0000000106e724ca -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2810"
7: "7 App4 0x0000000106f2e306 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 790"
8: "8 App4 0x0000000106f2de1f _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 127"
9: "9 App4 0x0000000106f2dd99 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 25"
10: "10 libdispatch.dylib 0x000000010d0ac4e1 _dispatch_call_block_and_release + 12"
11: "11 libdispatch.dylib 0x000000010d0ad54b _dispatch_client_callout + 8"
12: "12 libdispatch.dylib 0x000000010d0b401c _dispatch_lane_serial_drain + 720"
13: "13 libdispatch.dylib 0x000000010d0b4b5f _dispatch_lane_invoke + 401"
14: "14 libdispatch.dylib 0x000000010d0bd9a8 _dispatch_workloop_worker_thread + 645"
15: "15 libsystem_pthread.dylib 0x000000010d49760b _pthread_wqthread + 409"
16: "16 libsystem_pthread.dylib 0x000000010d497405 start_wqthread + 13"
【问题讨论】:
-
您是否已将
NSAllowsArbitraryLoads添加到您的info.plist文件中? -
@MohammadRF 我不确定这是否是问题所在。 zip 文件已成功下载并解压缩。该 zip 文件中的所有其他内容都可以访问,只是音频无法访问。 NSAllowsArbitraryLoads 是否与能否下载文件有关?
标签: ios react-native