ijk默认选中第一个音轨,解决国粤双语时优先选择粤语的bug;

pull/142/head
于俊 9 months ago
parent f7923d931d
commit e2d482a9ba
  1. 7
      app/src/main/java/com/github/tvbox/osc/player/IjkMediaPlayer.java
  2. 5
      app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java
  3. 5
      app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java

@ -197,15 +197,14 @@ public class IjkMediaPlayer extends IjkPlayer {
for (IjkTrackInfo info : trackInfo) {
if (info.getTrackType() == ITrackInfo.MEDIA_TRACK_TYPE_AUDIO) {//音轨信息
TrackInfoBean a = new TrackInfoBean();
String name = info.getInfoInline();
String name = processAudioName(info.getInfoInline());
a.language = info.getLanguage();
if(name.startsWith("aac"))a.language="中文";
a.name = processAudioName(name);
a.name = name;
a.index = index;
a.selected = index == audioSelected;
// 如果需要,还可以检查轨道的描述或标题以获取更多信息
data.addAudio(a);
index++;
}
else if (info.getTrackType() == ITrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT) {//内置字幕
TrackInfoBean t = new TrackInfoBean();
@ -214,8 +213,8 @@ public class IjkMediaPlayer extends IjkPlayer {
t.index = index;
t.selected = index == subtitleSelected;
data.addSubtitle(t);
index++;
}
index++;
}
return data;
}

@ -575,6 +575,11 @@ public class PlayActivity extends BaseActivity {
if (trackInfo != null && trackInfo.getSubtitle().size() > 0) {
mController.mSubtitleView.hasInternal = true;
}
//默认选中第一个音轨 一般第一个音轨是国语
if (trackInfo != null && trackInfo.getAudio().size() > 1) {
int firsIndex=trackInfo.getAudio().get(0).index;
((IjkMediaPlayer)(mVideoView.getMediaPlayer())).setTrack(firsIndex);
}
((IjkMediaPlayer)(mVideoView.getMediaPlayer())).setOnTimedTextListener(new IMediaPlayer.OnTimedTextListener() {
@Override
public void onTimedText(IMediaPlayer mp, IjkTimedText text) {

@ -592,6 +592,11 @@ public class PlayFragment extends BaseLazyFragment {
if (trackInfo != null && trackInfo.getSubtitle().size() > 0) {
mController.mSubtitleView.hasInternal = true;
}
//默认选中第一个音轨 一般第一个音轨是国语
if (trackInfo != null && trackInfo.getAudio().size() > 1) {
int firsIndex=trackInfo.getAudio().get(0).index;
((IjkMediaPlayer)(mVideoView.getMediaPlayer())).setTrack(firsIndex);
}
((IjkMediaPlayer)(mVideoView.getMediaPlayer())).setOnTimedTextListener(new IMediaPlayer.OnTimedTextListener() {
@Override
public void onTimedText(IMediaPlayer mp, IjkTimedText text) {

Loading…
Cancel
Save