Звук не воспроизводится, когда окно не сфокусировано - PullRequest
0 голосов
/ 08 января 2019

У меня есть приложение, написанное на Elm, которое воспроизводит музыку Pandora, которая отображается в Electron. Большую часть времени, когда песня заканчивается, она переходит к следующей песне, как обычно, но иногда, если окно не сфокусировано и находится позади другого (обычно, когда я использую только один монитор), моя индикатор выполнения будет продолжать двигаться но звук не будет воспроизводиться, пока я не сфокусирую окно. Кто-нибудь знает, что может быть причиной этого?

          onEnded
                (case (gm.currentStation) of
                    Just station ->
                        station.id

                    Nothing ->
                        ""
                )
            , id "songAudio"
            , src
                (case (List.head gm.songQueue) of
                    Just song ->
                        song.audioURL

                    Nothing ->
                        ""
                )
            , autoplay True
            ]
            [] 
onEnded : String -> Attribute Msg
onEnded stationId =
    Html.Events.on "ended"
        (Decode.succeed (SongEnded stationId))


( { gm
            | songQueue = (List.drop 1 gm.songQueue)
            , previousSongs =
                (case List.head gm.songQueue of
                    Just song ->
                        song

                    Nothing ->
                        { songTitle = ""
                        , trackLength = 0
                        , rating = 0
                        , audioURL = ""
                        , artistName = ""
                        , albumTitle = ""
                        , albumArt = ""
                        , trackToken = ""
                        }
                )
                    :: gm.previousSongs
            , currentTime = 0
            , isPlaying = True
          }
        , cmds
            [ if List.length gm.songQueue == 2 then
                Http.send LoadedNextSongs
                    (SongApi.getNext stationId gm.authToken False)
              else
                Cmd.none
            ]
        )

Большую часть времени он продолжает играть песню как обычно, но иногда он не начинает песню, пока я не перефокусирую окно. (Индикатор выполнения продолжает отсчитывать, поэтому код, который его вызывает, должен работать.)

...