[英]Cannot start playback in media application via Google Assistant
我試圖使我的應用程序響應Google Assistant命令,並且類似以下操作:嘿Google-“下一個”,“上一個”和“暫停”運行良好,但是“播放”操作要么啟動另一個應用程序,要么什么也不做。
我試圖將不同的動作組合到PlaybackState.ActionSkipToPrevious
, PlaybackState.ActionPause
, PlaybackState.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.