Невозможно воспроизвести звуки в сборке игры для Android с использованием Cordova

#android #html #cordova #audio #soundjs

#Android #HTML #кордова #Аудио #soundjs

Вопрос:

Пожалуйста, кто-нибудь может мне помочь — это сводит меня с ума!!!

Я создал проект HTML5, который использует PreloadJS и SoundJS для воспроизведения некоторых звуков. В Chrome это работает абсолютно нормально, но когда я загружаю его в эмулятор Cordova (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, которые, я считаю, должны быть автоматически сопоставлены с / android_asset / www / assets cordova.

Буду признателен за любую помощь.

Ответ №1:

Здесь вы можете увидеть некоторые обсуждения по использованию PhoneGap, которые, вероятно, будут актуальны.

Теоретически все должно работать с Cordova, но это недостаточно хорошо протестировано.

Я бы посоветовал убедиться, что все звуки загружены полностью, прежде чем пытаться воспроизводить, убедиться, что вы используете последнюю версию soundjs с github, и протестировать один из простых примеров с github, чтобы подтвердить, не связано ли это с SoundJS и Cordova или что-то в вашей реализации.

Надеюсь, это поможет.

Комментарии:

1. Привет, Оджай, спасибо за твое сообщение. я наткнулся на эту ссылку, пытаясь найти исправление, но он приходит к выводу, что они не смогли заставить ее работать, поэтому использовали другую библиотеку. Я надеялся, что кто-нибудь скажет, что у них определенно работает soundjs и как они это сделали… (И тогда я смогу понять, почему мой код не соответствует действительности)

2. На раннем этапе они отмечают, что подход, безопасный для мобильных устройств , работает в phonegap. Была проделана работа , чтобы помочь SoundJS работать с phonegap, но это не то, с чем мы тестируем.

3. Привет, Оджай — что бы я ни пробовал, я не могу заставить SoundJS работать с Cordova и Android. Так расстраивает, как я люблю CreateJS и EaselJS.

4. Жаль это слышать. Мы подумывали о добавлении плагина для Cordova / PhoneGap, но у нас не было времени реализовать его. Я продолжаю надеяться, что кто-нибудь из сообщества соберет их вместе и добавит запрос на извлечение в репозиторий.