GiraffePlayer2 видео плеер проблема на трек изменения в Android

Я создал новое приложение, и для этого мне нужен видеоплеер, который поддерживает все форматы видео с мульти аудио треком. поэтому я ищу в Google и нахожу Giraffe Player 2, у которого есть все необходимое для моего приложения. Но я столкнулся с проблемой. Пожалуйста, помогите мне исправить это.

Проблема:- Я использую пример кода приложения для воспроизведения видео в формате MKV. Видеоконтент с двумя звуковыми дорожками для разных языков при воспроизведении локального видео работает нормально, но когда я загрузил видео со своего сервера ( Url) и изменил звуковую дорожку, скорость видео увеличится и дорожка видео и аудио будет отличаться. Вы можете помочь мне, как решить это?

Основная деятельность

GiraffePlayer.debug = true;//show logs

getSupportFragmentManager().beginTransaction().add(android.R.id.content,
new VideoPlayerFragment()).commit();

VideoPlayerFragment

@Override

public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //set global configuration: turn on multiple_requests
    PlayerManager.getInstance().getDefaultVideoInfo().addOption(Option.create(IjkMediaPlayer.OPT_CATEGORY_FORMAT,
            "multiple_requests", 1L));
    mContext = getActivity();
}

 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

             //my video link
        testUrl = "VIDEO_URL_WITH_MULTIPLE_AUDIO_TRACK";

        if (isNetworkPresent()) {
            videoView.setVideoPath(videolist.get(videopos));
            videoView.getVideoInfo().addOption(Option.create(IjkMediaPlayer.OPT_CATEGORY_PLAYER,
"framedrop", 5L));
            videoView.getPlayer().aspectRatio(aspectRatio);
            videoView.getPlayer().start();

        } else {
            Toast.makeText(mContext, "Please check your internate
connection", Toast.LENGTH_SHORT).show();
        }
    }

// в xml видео фрагмента

<tcking.github.com.giraffeplayer2.VideoView
    android:id="@+id/video_view"
    android:layout_width="match_parent"
    android:layout_height="@dimen/_250sdp" />

AndroidManifest

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature
    android:name="android.software.leanback"
    android:required="false" />
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
<uses-sdk />

<application

    android:allowBackup="true"
    android:banner="@drawable/ic_close_white_24dp"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
   android:theme="@style/AppTheme">

<activity
    android:name=".MainActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

</application>

Я отлаживаю плеер и нахожу, где трек изменится здесь:-

case MSG_CTRL_SELECT_TRACK:
                        int track = (int) msg.obj;
                        if (mediaPlayer instanceof IjkMediaPlayer) {
                            ((IjkMediaPlayer) mediaPlayer).selectTrack(track);
                        } else if (mediaPlayer instanceof AndroidMediaPlayer) {
                            ((AndroidMediaPlayer) mediaPlayer).getInternalMediaPlayer().selectTrack(track);
                        }
                        break;

В моем случае используется IjkMediaPlayer.

0 ответов

Другие вопросы по тегам