44 lines
No EOL
1.5 KiB
JavaScript
44 lines
No EOL
1.5 KiB
JavaScript
'use strict';
|
|
|
|
angular.module('copayApp.services').service('soundService', function($log, $timeout, platformInfo, configService) {
|
|
|
|
var root = {};
|
|
|
|
/**
|
|
* Play a sound (when enabled in the configuration) using the Cordova Media-plugin (on Mobile) or html5-audio (on Desktop) relative to the www-root
|
|
* Make sure there is a .ogg file as well for NW.js (desktop) implementation
|
|
* @param soundFile
|
|
*/
|
|
root.play = function(soundFile) {
|
|
configService.whenAvailable(function(config) {
|
|
if (config.soundsEnabled) {
|
|
if (platformInfo.isCordova) {
|
|
|
|
if (platformInfo.isAndroid) {
|
|
var p = window.location.pathname;
|
|
var device_path = p.substring(0, p.lastIndexOf('/'));
|
|
soundFile = device_path + '/' + soundFile;
|
|
}
|
|
|
|
var audio = new Media(soundFile,
|
|
function () {
|
|
$log.debug("playAudio(bch_sent):Audio Success");
|
|
},
|
|
function (err) {
|
|
$log.debug("playAudio():Audio Error: " + err);
|
|
}
|
|
);
|
|
audio.play({playAudioWhenScreenIsLocked: false}); // XX SP: "Locked" is also the mute switch in iOS
|
|
} else {
|
|
if (platformInfo.isNW) {
|
|
soundFile = soundFile.substring(0, soundFile.lastIndexOf('.')) + ".ogg";
|
|
$log.debug("Playing .ogg file ("+soundFile+"), as NW.js has no mp3 support");
|
|
}
|
|
new Audio(soundFile).play();
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
return root;
|
|
}); |