无法使用Cordova在Android Game Build上播放声音

时间:2014-07-04 11:58:54

标签: android html5 cordova audio soundjs

请有人帮助我 - 这让我发疯了!!!

我创建了一个HTML5项目,它使用PreloadJS和SoundJS来播放一些声音。它在Chrome中运行得非常好但是当我将它推送到Cordova Emulator(Android SDK)或我的Android手机时,它会成功构建和部署,但我根本没有声音,我无法弄清楚原因。 Android监视器显示以下错误,但我不确定它们是否与SoundJS有关:

•I/MediaFocusControl(1258): AudioFocus requestAudioFocus() from android.media.AudioManager @ b303c1a8com.android.org.chromium.media.MediaPlayerListener@b30f0238

•E/MediaPlayer(1904): error (1, -2147483648)

我试图在按钮点击事件中触发声音,因此我认为它与安全问题无关。

我使用以下代码预加载声音文件:

p.assetsPath = 'assets/';

p.initialize = function () {

   this.EventDispatcher_initialize();

   this.loadManifest = [
      {id:this.MENUSOUNDTRACK, src:this.assetsPath + 'MainTrack.ogg'},
      {id:this.GAMESOUNDTRACK, src:this.assetsPath + 'BackingTrack.ogg'},
 .......
}

p.preloadAssets = function () {
   createjs.Sound.initializeDefaultPlugins();
   createjs.Sound.alternateExtensions = ["mp3"];

   this.queue = new createjs.LoadQueue();
   this.queue.on('progress',this.assetsProgress,this);
   this.queue.on('complete',this.assetsLoaded,this);

   this.queue.installPlugin(createjs.Sound);        
   this.queue.loadManifest(this.loadManifest);
}

所有声音文件都存储在/ www / assets中,我认为应该通过cordova自动映射到/ android_asset / www / assets。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

您可以看到围绕使用可能相关的PhoneGap here的一些讨论。

理论上,一切都应该与Cordova一起使用,但它没有经过充分测试。

我建议确保在尝试播放之前完全加载所有声音,确保使用来自github的最新版本的soundjs,并测试github中的一个简单示例以确认它是否为SoundJS和Cordova问题或您的实施中是否存在某些内容。

希望有所帮助。