簡體   English   中英

無法通過Google Assistant在媒體應用程序中開始播放

[英]Cannot start playback in media application via Google Assistant

我試圖使我的應用程序響應Google Assistant命令,並且類似以下操作:嘿Google-“下一個”,“上一個”和“暫停”運行良好,但是“播放”操作要么啟動另一個應用程序,要么什么也不做。

我試圖將不同的動作組合到PlaybackState.ActionSkipToPreviousPlaybackState.ActionPausePlaybackState.ActionPlay ,但是似乎沒有任何幫助。

我在MediaSessionCompat.Callback成功接收了onPause回調,但似乎從未調用過onPlay

MediaSession位於PlaybackService ,這是我用於實際播放的前台服務。

我在服務OnCreate設置mediaSession

void onCreate() 
{
    mediaSession = new MediaSessionCompat(ApplicationContext, nameof(PlaybackService));

    var playbackState = new PlaybackStateCompat.Builder()
        .SetActions(
        PlaybackStateCompat.ActionPlay
            | PlaybackStateCompat.ActionPlayPause
            | PlaybackStateCompat.ActionPause
            | PlaybackStateCompat.ActionStop
            | PlaybackStateCompat.ActionSkipToNext
            | PlaybackStateCompat.ActionSkipToPrevious)
        .Build();
mediaSession.SetPlaybackState(playbackState);

    var mediaSessionCallback = new MusicIntentReceiver.MediaSessionCallback();
    mediaSession.SetCallback(mediaSessionCallback);
...

而且還能對播放器狀態變化做出反應並重置播放狀態

stateBuilder.SetActions(
    PlaybackState.ActionSkipToPrevious
    | (!IsPlaying ? PlaybackState.ActionPause : PlaybackState.ActionPlay)
    | PlaybackState.ActionSkipToNext);

mediaSession.SetPlaybackState(stateBuilder.Build());

通常,在發布問題后才發現問題。

“播放”不起作用的唯一原因是,由於我在播放空閑時已停用mediaPlayer

如果您正在積極使用媒體會話,請不要這樣做。

mediaSession.Active = false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM