Angularjs 当手机处于振动/静音状态时,不会播放音频曲目
我用它来控制爱奥尼亚应用程序上的音轨(spotify 30秒预览)。这一切都可以在浏览器中运行。然而,在ionic view和实际的演示应用程序中,只有当我将手机振动开关切换到非静音/铃声模式时,曲目才会流式播放。如果处于振动模式,用户将听不到任何声音。我已经挖遍了,似乎无法解开这个谜 这是我的服务:Angularjs 当手机处于振动/静音状态时,不会播放音频曲目,angularjs,ionic-framework,html5-audio,spotify,Angularjs,Ionic Framework,Html5 Audio,Spotify,我用它来控制爱奥尼亚应用程序上的音轨(spotify 30秒预览)。这一切都可以在浏览器中运行。然而,在ionic view和实际的演示应用程序中,只有当我将手机振动开关切换到非静音/铃声模式时,曲目才会流式播放。如果处于振动模式,用户将听不到任何声音。我已经挖遍了,似乎无法解开这个谜 这是我的服务: .factory('PlayerService', function(ngAudio) { var _play = function(show) { if (typeo
.factory('PlayerService', function(ngAudio) {
var _play = function(show) {
if (typeof audioObject === "undefined") {
audioObject = ngAudio.load(show.track1_preview);
console.log(audioObject);
audioObject.play();
audioObject.playing = show.id;
return audioObject;
} else if (audioObject.paused) {
audioObject = ngAudio.load(show.track1_preview);
audioObject.play();
audioObject.playing = show.id;
return audioObject;
} else {
audioObject.stop();
audioObject = ngAudio.load(show.track1_preview);
audioObject.play();
audioObject.playing = show.id;
return audioObject;
}
}
var _pause = function(show) {
audioObject.stop();
audioObject.playing = '';
}
return {
play: _play,
pause: _pause
};
这是控制器:
$scope.playStream = function(show) {
PlayerService.play(show);
$scope.audioObject = audioObject; // this allow for styling the play/pause icons
}
$scope.pauseStream = function(show) {
PlayerService.pause(show);
$scope.audioObject = audioObject; // this allow for styling the play/pause icons
//console.log($scope.audioObject);
}
$scope.togglePlayPause = function(show) {
if (!$scope.audioObject || $scope.audioObject.paused) {
$scope.playStream(show);
} else if (show.track1_preview !== $scope.audioObject.id) {
$scope.playStream(show);
} else {
$scope.pauseStream(show);
}
}
显然,如果有人为了听音乐而不得不关掉手机的震动,这会有点糟糕的用户体验
我想知道这是否与异步和移动有关。我只是不知道。4小时后放弃。手机是否有独立的音量控制?也就是说,它有单独的铃声、媒体和通知音量控制吗?@Makoto我想这只是我的应用,因为当手机振动/静音时,所有其他ios应用都可以正常工作。我找到了这个插件,解决了这个问题。它专门用于在应用程序处于后台时播放音频,但另一个使用案例是它修复了它,使音量由媒体音量控制,而不是由铃声音量控制。作者这样说我们的用例:“只有这个用例,你的应用可能会在应用商店中被拒绝,因为你没有使用背景功能。你必须在-Info.plist文件中手动删除UIBackgroundModes部分的音频阵列。”