Angularjs 当手机处于振动/静音状态时,不会播放音频曲目

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

我用它来控制爱奥尼亚应用程序上的音轨(spotify 30秒预览)。这一切都可以在浏览器中运行。然而,在ionic view和实际的演示应用程序中,只有当我将手机振动开关切换到非静音/铃声模式时,曲目才会流式播放。如果处于振动模式,用户将听不到任何声音。我已经挖遍了,似乎无法解开这个谜

这是我的服务:

 .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部分的音频阵列。”