android - para - google chromecast
RemotePlaybackClient, stop() no recibe devoluciĆ³n de llamada (1)
Creo que todas las Respuestas residen en cómo haces la conexión. Porque en el código de Google, el código dice que el cliente que usted ha hecho no debe abandonar la sesión y no debe estar vacío.
if (!mClient.hasSession()) {
// ignore if no session
return;
}
/ ********* El resto del código sería inalcanzable *********** /
@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);
}
});
}
Estoy intentando escribir una aplicación de ejemplo RemotePlaybackClient
, en parte porque la publicada por Google se bloquea aapt
.
Puedo hacer que RemotePlaybackClient
compatible con play()
, y reproduce un video en un Chromecast.
Sin embargo, cuando llamo a stop()
, para detener la reproducción del video, mientras que el Chromecast detiene la reproducción (mostrando una pantalla negra con un ícono de SessionActionCallback
centrado), el SessionActionCallback
que paso a la llamada stop()
no recibe llamadas. 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);
}
Lo mismo ocurre si intento pause()
: el SessionActionCallback
pasado a pause()
no se invoca.
El código de muestra publicado por Google muestra que se deben invocar estas devoluciones de llamada, pero, nuevamente, no puedo hacer que se compile correctamente.
¿Alguien sabe bajo qué circunstancias el SessionActionCallback
no funcionaría, mientras que el ItemActionCallback
usado con play()
funcionaría?
ACTUALIZAR
He presentado el número 66996 y el número 67032 , el último de los cuales es específicamente el problema que estoy viendo aquí, ya que me encuentro con este mismo problema con la aplicación de muestra oficial.