我試圖將Chromecast集成到我們的應用中,並且遇到了在加入已運行的應用時從接收者獲取數據的問題。如何從接收者獲取自定義數據
當第一次啓動該應用程序使用我
public class CastMessageStream extends RemoteMediaPlayer {
public void setMetadata(GoogleApiClient apiClient, CastingObject castingObject, String seriesId, String description, String episodeNumber, String title) {
JSONObject payload = _initJsonObject(COMMAND_KEY_SET_METADATA);
try {
payload.put(KEY_SUB_TITLE, castingObject.castingSubUrl);
payload.put(KEY_TITLE, title);
payload.put(KEY_SERIES_ID, seriesId);
payload.put(KEY_EPISODE_NUMBER, episodeNumber);
payload.put(KEY_DESCRIPTION, description);
payload.put(KEY_VIDEO_HEADER, castingObject.description);
sendMessage(apiClient, payload.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Send messages to the reciever using the NAMESPACE
*/
private final void sendMessage(GoogleApiClient apiClient, String message)
throws IOException, IllegalArgumentException, IllegalStateException {
Cast.CastApi.sendMessage(apiClient, NAMESPACE, message);
}
代碼加入應用已經在運行
Cast.CastApi.launchApplication(googleApiClient, APP_ID).setResultCallback(new ResultCallback<Cast.ApplicationConnectionResult>() {
@Override
public void onResult(Cast.ApplicationConnectionResult applicationConnectionResult) {
mMessageStream = new CastMessageStream();
MediaInfo mediaInfo = mMessageStream.getMediaInfo();
MediaStatus mediaStatus = mMessageStream.getMediaStatus();
JSONObject jsonObject = mediaInfo.getCustomData(); // Returns null
MediaMetadata metadata = mediaInfo.getMetadata(); // Returns null
....
}
});
我要如何從接收自定義信息集的元日期與RemoteMediaPlayer。我有它在iOS上工作,所以我知道它可能。任何幫助,非常感謝
什麼是mMessageStream? (順便說一句,你可能想要將代碼包裝在你的onResult()中的條件語句中,只有當applicationConnectionResult.getStatus()。isSuccess()爲true時才能執行) –
@AliNaddaf我把它包裝起來,但爲了簡單起見,在問題中拿出來。我編輯了這個問題,mMessageStream是一個CastMessageStream,它擴展了RemoteMediaPlayer – Darussian