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;
}
मैं व्यक्तिगत रूप से मीडियाप्लेयर का उपयोग नहीं करने की सिफारिश करता हूं, Google द्वारा विकसित ExoPlayer https://github.com/google/ExoPlayer# का उपयोग करने के लिए, यह एंड्रॉइड पर वीडियो का भविष्य है। यह उपशीर्षक भी समर्थन करता है। –
चूंकि आप संभावित रूप से @ Mibit के उत्तर में सुझाए गए पूरे ऑब्जेक्ट को पुनरारंभ नहीं करना चाहते हैं, तो क्या आपने अलग-अलग संसाधनों के बजाय समय टेक्स्ट स्रोतों को संयुक्त करने की कोशिश की है और बस उन्हें अलग-अलग ट्रैक के रूप में रखा है? – craigts