Com*_*are 48 android google-cast chromecast
我试图编写一个RemotePlaybackClient示例应用程序,部分原因是Google发布的aapt应用程序崩溃了.
我可以获得RemotePlaybackClient支持play(),并在Chromecast上播放视频.
但是,当我打电话时stop(),要停止播放视频,而Chromecast确实停止播放(显示一个黑色屏幕,其中有一个投射图标居中),SessionActionCallback我传入stop()调用的内容不会被调用onResult():
private void stop() {
logToTranscript(getActivity().getString(R.string.stop_requested));
SessionActionCallback stopCB=new SessionActionCallback() {
@Override
public void onResult(Bundle data, String sessionId,
MediaSessionStatus sessionStatus) {
logToTranscript(getActivity().getString(R.string.stopped));
isPlaying=false;
isPaused=false;
getActivity().supportInvalidateOptionsMenu();
endSession();
}
};
client.stop(null, stopCB);
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试也会发生同样的事情pause()- 未调用SessionActionCallback传递给pause().
Google发布的示例代码显示应该调用这些回调,但是,我再也无法成功编译.
有谁知道在什么情况下SessionActionCallback不会起作用,而ItemActionCallback使用它play() 会起作用?
UPDATE
我相信所有的答案都取决于你如何建立联系。因为在谷歌代码中,代码表示您创建的客户端不应离开会话且不应为空。
if (!mClient.hasSession()) {
// ignore if no session
return;
}
Run Code Online (Sandbox Code Playgroud)
/************其余代码将无法访问************/
@Override
public void pause() {
if (!mClient.hasSession()) {
// ignore if no session
return;
}
if (DEBUG) {
Log.d(TAG, "pause");
}
mClient.pause(null, new SessionActionCallback() {
@Override
public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus) {
logStatus("pause: succeeded", sessionId, sessionStatus, null, null);
if (mCallback != null) {
mCallback.onPlaylistChanged();
}
}
@Override
public void onError(String error, int code, Bundle data) {
logError("pause: failed", error, code);
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |