我尝试使用@ionic-native/native-audio
与下面的代码加载我的mp3文件
https://ionicframework.com/docs/native/native-audio/
this.nativeAudio.preloadSimple(‘sound2’, ‘assets/sound2.mp3’.then(() => {
console.log(‘preload success’)
}, (err) => {
console.log(err);
});
然而,我得到一个错误时,预加载的mp3 java.io.FileNotFoundException: www/assets/sound2.mp3
,我敢肯定的sound2.mp3
是放在/src/assets/sound2.mp3
和www/assets/sound2.mp3
有人有什么想法吗?
5条答案
按热度按时间iqih9akk1#
快速修复
请访问:“您的应用程序\安卓\电容器-cordova-安卓插件\src\main\java\com\rjfun\cordova\插件\本机音频\本机音频. java”
然后:更改代码行
至
e3bfsja22#
Ionic 6.18.1
,cordova-plugin-nativeaudio@3.0.9
和Capacitor 3.3.2
也有同样的问题。旧的Cordova插件经常出现这样的问题,所以最好添加一个钩子来修复,这样就不需要在每个sync
之后手动修改它了。将
scripts
块中的package.json
相加:"capacitor:sync:after": "node ./scripts/fix-audio-plugin.js"
将新文件添加到
scripts/fix-audio-plugin.js
:然后运行
ionic cap sync
。xpcnnkqh3#
尝试以下方法访问Android设备的“www/assets”:
如果不工作,尝试复制文件之前与文件 cordova 插件:
4dc9hkyq4#
听起来像https://forum.ionicframework.com/t/native-audio-asset-not-found-ios/78817/16其中说的这个。
解决方案Cordova Native Audio插件需要一个assets“www”文件夹。但在Ionic Capacitor项目中,它被命名为“public”。由于插件将此值硬编码,下面链接中的解决方案告诉您深入每个平台中的插件源代码,并将“www”替换为“public”。
或者,将符号链接从“www”文件夹添加到平台main/assets位置中的“public”文件夹。
有关详细信息,请参阅本期:https://github.com/ionic-team/ionic-native/issues/2685
q8l4jmvw5#
有时我们会遇到这类插件问题。要解决这个问题,我们必须编辑源文件夹中的本地代码。
1.电容器使用“public/...”而不是“www/...”(cordova使用的)。
1.希望你在电容器项目。
1.请转到{项目文件夹}/节点模块/cordova插件本机音频/源代码/android。
1.打开NativeAudio.java。搜索“字符串完整路径”并将“www”替换为“public”。运行“ionic cap sync android”。
1.就是这样。现在您的文件可以在原生应用程序中访问。
还有一个问题。我不能播放mp3文件。但是wav文件可以。它是如何工作的?