Phonegap NativeAudio将无法在iOS

时间:2017-01-10 13:10:51

标签: ios cordova audio cordova-plugins

我正在尝试将此插件与我的PhoneGap Build应用程序一起使用: https://www.npmjs.com/package/cordova-plugin-nativeaudio

我在 config.xml

中调用它
<gap:plugin name="cordova-plugin-nativeaudio" source="npm" />

然后在我的 onDeviceReady 中加载声音:

if( window.plugins && window.plugins.NativeAudio ) {

    window.plugins.NativeAudio.preloadSimple( 'slide', 'sounds/slide.mp3', function(msg){
    }, function(msg){
       alert( 'error: ' + msg );
    });
}
else {
   alert("load failed");
}

然后在我的函数中,每次移动a时都会发生

window.plugins.NativeAudio.play( 'slide' );

然后我打包并构建应用程序并通过TestFlight在我的手机上安装

声音存储在我的www/sounds/文件夹中,如果我更改了加载代码中的路径/文件名,我的手机就会发出警告&#34;加载失败&#34;,但是如果路径正确则保持沉默暗示成功。然而,在被叫时它没有发出声音。

我试图通过媒体插件播放相同的声音并且它有效,所以我知道.mp3本身没有任何问题,但是媒体有多次调用它来处理冻结应用程序。

编辑:如果此插件被破坏或过时,将接受合适的替代方案。

2 个答案:

答案 0 :(得分:1)

我已经测试了插件,它运行得很好。

您可以尝试他们的sample project

首先,我尝试使用您的代码和我从互联网上下载的声音,并在尝试播放时遇到此错误: WARNING: [0x1f197000] 998: Failure to setup sound, err = -50(预加载成功回调,调用播放时显示在Xcode调试区域)

问题在于使用preloadSimple播放声音很复杂,使用preloadComplex为我解决了问题,所以也许你的声音过于复杂而无法使用{{1}播放}

注意:使用preloadSimple时,你必须在成功回调之前传递三个参数,音量,声音,延迟,应该是这样的:

preloadComplex

答案 1 :(得分:0)

  

问题可能与音频文件的大小/类型有关,因此请使用 preloadSmplex preloadSimple

FROM ... # Your base image here
ENTRYPOINT ["dotnet", "YourWebAppName.dll"] # Application to run
ARG source=. # An argument from outside, here store the path from real filesystem
WORKDIR /app
ENV ASPNETCORE_URLS http://+:82 # Define the port it should listen
EXPOSE 82
COPY $source . # copy the files from defined folder, here bin\Debug\netcoreapp1.0\publish to inside the docker container