Я пытаюсь реализовать Chromecast в простом приложении отправителя для передачи данного видео. Я реализовал кнопку приведения и могу подключиться к своему устройству без ошибок, но не могу передавать данные. Я что-то забыл или я что-то не так делаю?
onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupCastListener();
mCastContext = CastContext.getSharedInstance(this);
mCastSession = mCastContext.getSessionManager().getCurrentCastSession();
}
установить прослушиватель Cast: loadRemoteMedia в onApplicationConnected
private void setupCastListener() {
mSessionManagerListener = new SessionManagerListener<CastSession>() {
@Override
public void onSessionEnded(CastSession session, int error) {
onApplicationDisconnected();
}
@Override
public void onSessionResumed(CastSession session, boolean wasSuspended) {
onApplicationConnected(session);
}
@Override
public void onSessionResumeFailed(CastSession session, int error) {
onApplicationDisconnected();
}
@Override
public void onSessionStarted(CastSession session, String sessionId) {
onApplicationConnected(session);
}
@Override
public void onSessionStartFailed(CastSession session, int error) {
onApplicationDisconnected();
}
@Override
public void onSessionStarting(CastSession session) {}
@Override
public void onSessionEnding(CastSession session) {}
@Override
public void onSessionResuming(CastSession session, String sessionId) {}
@Override
public void onSessionSuspended(CastSession session, int reason) {}
private void onApplicationConnected(CastSession castSession) {
mCastSession = castSession;
loadRemoteMedia(0, true);
}
private void onApplicationDisconnected() {
}
};
}
загрузка MediaInfo:
private MediaInfo buildMediaInfo() {
String videoUrl = "https://github.com/mediaelement/mediaelement-files/blob/master/big_buck_bunny.mp4?raw=true";
MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
movieMetadata.putString(MediaMetadata.KEY_TITLE, "Test Stream");
movieMetadata.putString(MediaMetadata.KEY_ALBUM_ARTIST, "Test Artist");
movieMetadata.addImage(new WebImage(Uri.parse("https://github.com/mkaflowski/HybridMediaPlayer/blob/master/images/cover.jpg?raw=true")));
return new MediaInfo.Builder(videoUrl)
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setContentType("videos/mp4")
.setMetadata(movieMetadata).build();
}
загрузка удаленного носителя:
private void loadRemoteMedia(int position, boolean autoPlay) {
if (mCastSession == null) {
return;
}
RemoteMediaClient remoteMediaClient = mCastSession.getRemoteMediaClient();
if (remoteMediaClient == null) {
return;
}
remoteMediaClient.load(new MediaLoadRequestData.Builder()
.setMediaInfo(buildMediaInfo())
.setAutoplay(autoPlay)
.setCurrentTime(position).build());
}