Как искать файл .ts в медиаплеере vl c, интегрированном в приложение android? - PullRequest
1 голос
/ 08 января 2020

Я использовал интеграцию медиа-плеера vl c в своем приложении android (libvl c). Я использую его для воспроизведения файлов RTSP в формате .ts. Я реализовал функцию, с помощью которой я могу воспроизводить записанные файлы, и она отлично работает только для воспроизведения, но я не могу искать через эти файлы, даже если они доступны для поиска в vl c настольная версия. Чтобы прояснить это, я проиграл этот поток в приложении vl c android, и все равно не могу найти его, затем я использовал приложение Mx player android и могу искать в этом файле. Есть ли способ сделать это в интеграции vl c для android?

 private LibVLC libvlc;
 private MediaController controller;

private void CreateMediaplayer(String url, TextureView textureview)
    {
        try {
            ArrayList<String> options = new ArrayList<String>();
            options.add("--rtsp-tcp");
            options.add("-vvv"); // verbosity
       /*   options.add("--aout=opensles");
            options.add("--audio-time-stretch"); // time stretching
            options.add("--aout=opensles");
            options.add("--avcodec-codec=h264");*/

            controller = new MediaController(this.context);
            controller.setMediaPlayer(playerinterface);
            controller.setAnchorView(relativeLayout);

            if(isFullscreen){
                controller.show(100000);

            }

            libvlc = new LibVLC(this.context, options);
            // Create media player
            mMediaPlayer = new MediaPlayer(libvlc);
            mMediaPlayer.setEventListener(this);



            // Set up video output
            final IVLCVout vout = mMediaPlayer.getVLCVout();
            mMediaPlayer.setScale(0);
            vout.detachViews();
            vout.setVideoView(textureview);
            vout.setWindowSize(textureview.getWidth(), textureview.getHeight());
            vout.attachViews();
            textureview.setKeepScreenOn(true);

            Media m = new Media(libvlc, Uri.parse(url));
            mMediaPlayer.setMedia(m);
            mMediaPlayer.play();

            progressBar.setVisibility(View.VISIBLE);
            }catch(Exception e1)
        {
            progressBar.setVisibility(View.VISIBLE);
        }

    }
 private MediaController.MediaPlayerControl playerinterface = new MediaController.MediaPlayerControl() {
        @Override
        public void start() {
           // mMediaPlayer.pause();
        }

        @Override
        public void pause() {
          // mMediaPlayer.play();

        }

        @Override
        public int getDuration() {
            return 0;
            //return (int)mMediaPlayer.getLength();
        }

        @Override
        public int getCurrentPosition() {
            return 0;
        }

        @Override
        public void seekTo(int i) {
            mMediaPlayer.setPosition((float)i);
            mMediaPlayer.play();

        }

        @Override
        public boolean isPlaying() {
            return false;
        }

        @Override
        public int getBufferPercentage() {
            return 0;
        }

        @Override
        public boolean canPause() {
            return true;
        }

        @Override
        public boolean canSeekBackward() {
            return true;
        }

        @Override
        public boolean canSeekForward() {
            return true;
        }

        @Override
        public int getAudioSessionId() {
            return 0;
        }
    };
...