我希望在Ionic启动应用程序时播放声音文件,因为启动画面会加载。我怎样才能做到这一点?找不到任何相关文档。该文件是wav类型。
答案 0 :(得分:0)
所以我的解决方案如下:
在app.js中,您可以初始化localstorage中的值
在这种情况下:$ window.localStorage [' flag']
此外,您必须在www文件夹中创建一个名为audio的文件夹,然后放置您的wav文件。
.run(function($ionicPlatform,$state,$window,$q) {
$ionicPlatform.ready(function() {
$window.localStorage['flag'] = "false";
flager = $window.localStorage['flag'];
if (flager=="false"){
var service = {
loadMedia: loadMedia,
getStatusMessage: getStatusMessage,
getErrorMessage: getErrorMessage
};
function loadMedia(src, onError, onStatus, onStop){
var defer = $q.defer();
var mediaSuccess = function(){
if(onStop){onStop();}
};
var mediaError = function(err){
_logError(src, err);
if(onError){onError(err);}
};
var mediaStatus = function(status){
if(onStatus){onStatus(status);}
};
if($ionicPlatform.is('android')){src = '/android_asset/www/' + src;}
defer.resolve(new $window.Media(src, mediaSuccess, mediaError, mediaStatus));
return defer.promise;
}
function _logError(src, err){
console.error('media error', {
code: err.code,
message: getErrorMessage(err.code)
});
}
function getStatusMessage(status){
if(status === 0){return 'Media.MEDIA_NONE';}
else if(status === 1){return 'Media.MEDIA_STARTING';}
else if(status === 2){return 'Media.MEDIA_RUNNING';}
else if(status === 3){return 'Media.MEDIA_PAUSED';}
else if(status === 4){return 'Media.MEDIA_STOPPED';}
else {return 'Unknown status <'+status+'>';}
}
function getErrorMessage(code){
if(code === 1){return 'MediaError.MEDIA_ERR_ABORTED';}
else if(code === 2){return 'MediaError.MEDIA_ERR_NETWORK';}
else if(code === 3){return 'MediaError.MEDIA_ERR_DECODE';}
else if(code === 4){return 'MediaError.MEDIA_ERR_NONE_SUPPORTED';}
else {return 'Unknown code <'+code+'>';}
}
return service;
src = "audio/yoursound.wav";
loadMedia(src).then(function(media){
media.play();
});
$window.localStorage['flag']="true";
}
})
})
希望这会有所帮助。如果你的问题解决了,请告诉我!