2017-10-06 4 views
2

Chromecastをキューに入れて動画をキャストしても問題ありません。私の要求通り、画面上で何時間もビデオを絶えず再生する必要があります。そのために私は5から10のビデオのためのサーバーからビデオURLの束を得る。 2つのビデオが残っているとき、私は新しい束を得て、私は列に追加します。動画の長さは40〜50秒程度です。Chromecastでキュー内の動画をキャストすると、一定時間が経過すると自動的に動画が再生されなくなる

約45分から60分まではそれ以上再生を続けません。それはよりも停止する。

私はそれが時間のためにプレーしたい...

いずれかが、私はこの問題から出てくるのを助けることができます。どんな助けでも私にとって役に立ちます。

ここではキューを再生するコードです。

public void queuePlay(ArrayList<CastModel> data) { 

    ArrayList<MediaQueueItem> queueList = new ArrayList<>(); 

    for (int i = 0; i < data.size(); i++) { 

     MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE); 

     mediaMetadata.putString(MediaMetadata.KEY_TITLE, data.get(i).vTitle); 
     mediaMetadata.putString(MediaMetadata.KEY_SUBTITLE, data.get(i).vName); 
     mediaMetadata.addImage(new WebImage(Uri.parse(data.get(i).vImage))); 

     JSONObject extraData = null; 

     try { 

      extraData = getJsonOfObject(data.get(i)); 
      if (extraData == null) 
       extraData = new JSONObject(); 

     } catch (Exception e) { 
      Log.i(TAG, "queuePlay: exception " + e.toString()); 
     } 


     MediaInfo mediaInfo = new MediaInfo.Builder(data.get(i).vVideo) 
       .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED) 
       .setContentType("videos/mp4") 
       .setMetadata(mediaMetadata) 
       .setCustomData(extraData) 
       .setStreamDuration(30 * 1000) 
       .build(); 
     MediaQueueItem item = new MediaQueueItem.Builder(mediaInfo).build(); 
     queueList.add(item); 
    } 


    MediaQueueItem[] queueArray = new MediaQueueItem[queueList.size()]; 
    queueArray = queueList.toArray(queueArray); 

    remoteMediaClient = sessionManager.getCurrentCastSession().getRemoteMediaClient(); 
    remoteMediaClient.queueLoad(queueArray, 0, REPEAT_MODE_REPEAT_OFF, null); 

    remoteMediaClient.addListener(new RemoteMediaClient.Listener() { 
     @Override 
     public void onStatusUpdated() { 

      try { 
       Thread.sleep(1000); // Hold for a while 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

      MediaStatus mMediaStatus = remoteMediaClient.getMediaStatus(); 
      if (mMediaStatus != null && mMediaStatus.getQueueItems() != null) { 

       if (queueItemPlayedPosition < mMediaStatus.getCurrentItemId()) { 
        Log.w(TAG, "onStatusUpdated: Delete video " + queueItemPlayedPosition); 
        updateCastList(false); 
        queueItemPlayedPosition++; 
       } 

       Log.e(TAG, "onStatusUpdated getCurrentItemId " + remoteMediaClient.getMediaStatus().getCurrentItemId() + " *** onStatusUpdated: getQueueItemCount *** " + mMediaStatus.getQueueItemCount()); 
      } 

     } 

     @Override 
     public void onMetadataUpdated() { 

     } 

     @Override 
     public void onQueueStatusUpdated() { 

     } 

     @Override 
     public void onPreloadStatusUpdated() { 

     } 

     @Override 
     public void onSendingRemoteMediaRequest() { 
     } 
    }); 
} 

答えて

0

はキャストSDKで多くのことを果たしていますが、それは連続自動再生を使用してビデオを再生する方法を言及して探しているものを提供するかもしれないこのAutoplay & Queueing APIs見つかっていません。

関連する問題