Ionic: медиа плагин-не могу заставить его работать
Это работало в старой версии ionic
, но теперь я закончил обновление остальной части этого приложения и вернулся, чтобы завершить этот звук не будет воспроизводиться.
У меня есть переключатель включения-выключения для воспроизведения демо-звука в приложении. Вот код, с комментариями и с закомментированной частью, которая, как я думал, может вызвать мою проблему. Это не так.
.controller( 'SoundCtrl', function( $scope, $timeout ) {
$scope.sound_on = false;
var media = new Media( '100bpm.wav' );
$scope.soundPlayer = function() {
console.log( "in soundPlayer" );
if( $scope.sound_on == false ) {
$scope.sound_on = true;
media.setVolume( '1.0' );
media.play();
console.log( "sound on" );
console.log( media );
/*$timeout(function(){
$scope.sound_on=false;
console.log("should change");
}, 12600);*/
} else {
media.stop();
$scope.sound_on = false;
console.log( "sound off" );
}
}
});
Я получаю все нужные журналы консоли и помещаю wav-файл в ту же папку, что и мои js-скрипты.
По-прежнему ничего.
Какая-нибудь помощь?
1 ответ:
Согласно этому сообщению на форуме Ionic вы должны добавить '/android_asset/www/' в путь вашего медиафайла на устройстве Android.
Таким образом, ваш код становится следующим:
$scope.media = new Media( '/android_asset/www/'+'100bpm.wav', function() { console.log("[mediaSuccess]"); }, function(err) { console.log("[mediaError]", err); }, function(status) { console.log("[mediaStatus]", status); });
В моей пробной версии я использовал свойство (media) контроллера $scope для хранения объекта media и прикрепил также successHandler, errorHandler, statusHandler
Обратите внимание, что класс (функция)Media
уже доступен, когда вы создаете его с помощьюnew media()
в SoundCtrl. Оно случается со мной, что SoundCtrl создается доonDeviceReady
(то есть когда cordova.плагин.медиа становится доступным), поэтому я добавилnew Media(...)
к функции$scope.soundPlayer()
.