Ionic:媒体插件 - 无法正常工作
Ionic: Media plugin - can’t get it working
这在 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 脚本相同的文件夹中。
仍然没有。
有什么帮助吗?
根据 Ionic 论坛上的 this post,您必须将“/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);
});
在我的试用中,我使用控制器 $scope 的 属性(媒体)来存储媒体对象,我还附加了 successHandler、errorHandler、statusHandler
N.B.:注意在SoundCtrl中用new media()
实例化时Media
class(函数)已经可用了。我碰巧在 onDeviceReady
之前创建了 SoundCtrl(即 cordova.plugin.media 可用时),所以我将 new Media(...)
添加到 $scope.soundPlayer()
函数。
这在 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 脚本相同的文件夹中。
仍然没有。
有什么帮助吗?
根据 Ionic 论坛上的 this post,您必须将“/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);
});
在我的试用中,我使用控制器 $scope 的 属性(媒体)来存储媒体对象,我还附加了 successHandler、errorHandler、statusHandler
N.B.:注意在SoundCtrl中用new media()
实例化时Media
class(函数)已经可用了。我碰巧在 onDeviceReady
之前创建了 SoundCtrl(即 cordova.plugin.media 可用时),所以我将 new Media(...)
添加到 $scope.soundPlayer()
函数。