2014-12-11 9 views
16

मैं एक बार उपशीर्षक असाइन कर सकता हूं लेकिन इसके बाद यदि मैंने उपशीर्षक को बदलने की कोशिश की। यह नया स्वीकार नहीं करेगा, यह हर बार पिछले एक को प्रदर्शित करता है।mediaplayer में उपशीर्षक को कैसे बदलें

कोड के नीचे मैं उपशीर्षक बदलने के लिए उपयोग कर रहा हूं।

MediaPlayer mediaPlayer; 

    public void changeSubtitle() 
    { 
    //disable subtitle if it has 
    if(textTrackIndex!=0){  
    mediaPlayer.deselectTrack(textTrackIndex); 
    textTrackIndex=0; 
    mediaPlayer.setOnTimedTextListener(null); 
    } 

    //try to asssign new subtitle 

       mediaPlayer 
         .addTimedTextSource(
           (Environment.getExternalStorageDirectory() 
             .getPath() 
             + "/"+"filename", 
           MediaPlayer.MEDIA_MIMETYPE_TEXT_SUBRIP); 
    int textTrackIndex = findTrackIndexFor(TrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT,mediaPlayer.getTrackInfo()); 

      if (textTrackIndex >= 0) { 
       mediaPlayer.selectTrack(textTrackIndex); 
      } else { 
       Log.w(TAG, "Cannot find text track!"); 
      } 
      mediaPlayer.setOnTimedTextListener(this); 
    } 

    private int findTrackIndexFor(int mediaTrackType, TrackInfo[] trackInfo) 
    { 
      int index = -1; 
      for (int i = 0; i < trackInfo.length; i++) { 
       if (trackInfo[i].getTrackType() == mediaTrackType) { 
        return i; 
       } 
      } 
      return index; 
     } 
+2

मैं व्यक्तिगत रूप से मीडियाप्लेयर का उपयोग नहीं करने की सिफारिश करता हूं, Google द्वारा विकसित ExoPlayer https://github.com/google/ExoPlayer# का उपयोग करने के लिए, यह एंड्रॉइड पर वीडियो का भविष्य है। यह उपशीर्षक भी समर्थन करता है। –

+0

चूंकि आप संभावित रूप से @ Mibit के उत्तर में सुझाए गए पूरे ऑब्जेक्ट को पुनरारंभ नहीं करना चाहते हैं, तो क्या आपने अलग-अलग संसाधनों के बजाय समय टेक्स्ट स्रोतों को संयुक्त करने की कोशिश की है और बस उन्हें अलग-अलग ट्रैक के रूप में रखा है? – craigts

उत्तर

1

state diagram पर एक नज़र डालें। इससे पहले कि आप इसे नए जुड़े संसाधनों के साथ फिर से शुरू करें, reset() और release() अपने mediaPlayer पर आज़माएं।

संबंधित मुद्दे