сжатый видеофайл не воспроизводится в VideoView из WebServer - PullRequest
0 голосов
/ 22 мая 2018

Я занимаюсь разработкой приложения, которое записывает видео и сохраняет на веб-сервере, и поскольку записанное видео имеет слишком большой размер, я использую некоторую технику сжатия GiraffeCompressor и SiliCompressor , чтобы уменьшитьразмер исходного видео.

после применения метода сжатия, размер видеоизображения уменьшается, и я также проигрываю этот сжатый видеофайл в мой VideoView

, пока все не будет работать идеально

когда я загружаю сжатый видеофайл на сервер и пытаюсь воспроизвести видео с URL в VideoView , он не воспроизводится.

вот мой исходный код воспроизведения видео с URL в VideoView .и мой VideoView код отлично работает для воспроизведения другого видео (из URL), но он не воспроизводит мой сжатый видеофайл.

видео воспроизводится с моего сервера LocalHost (работает отлично), но не способен воспроизводитьвидео с Live Hosted Server.

что-то не так с моим кодом?пожалуйста, помогите мне.

        VideoView vv = (VideoView)findViewById(R.id.vv);
        vv.setZOrderOnTop(true);

        try {
            MediaController mediacontroller = new MediaController(this);
            mediacontroller.setAnchorView(vv);

            Uri uri = Uri.parse(_video_link);
            vv.setMediaController(mediacontroller);
            vv.setVideoURI(uri);
            vv.seekTo(1);

        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

        vv.requestFocus();
        vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {

                mp.setLooping(true);
                vv.start();

            }
        });
        vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp)
            {
                vv.resume();
            }
        });

вот мой logcat

   05-24 10:04:04.150 14581-14581/? D/MediaPlayerNative: getMetadata
05-24 10:04:04.151 14581-14581/? I/MediaPlayer: constructor
05-24 10:04:04.156 14581-14581/? I/MediaPlayer: start
05-24 10:04:04.157 14581-14581/? I/MediaPlayer: start
05-24 10:04:04.207 14581-14717/? W/MediaPlayerNative: info/warning (804, -2147479551)
05-24 10:04:04.211 14581-14717/? W/MediaPlayerNative: info/warning (804, -38)
05-24 10:04:04.229 14581-14717/? W/MediaPlayerNative: info/warning (3, 0)
05-24 10:04:04.267 14581-14581/? I/MediaPlayer: constructor
05-24 10:04:04.270 14581-14581/? I/MediaPlayer: setDataSource:http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4
05-24 10:04:04.271 14581-14581/? W/MediaPlayer: Couldn't open http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4: java.io.FileNotFoundException: No content provider: http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4
05-24 10:04:04.271 14581-14581/? I/MediaPlayer: setDataSource:http://www.selfilife.com/App/media/priteshvishwakarma/post_video/VIDEO_20180522_122801.mp4

1 Ответ

0 голосов
/ 22 мая 2018
  1. Пожалуйста, попробуйте использовать vv.setVideoPath(testVideoURL); вместо vv.setVideoURI(uri); Возможно, это может помочь.

  2. Я просто догадываюсь, но в случае использования self-подписанный сертификат https на бэкэнд может появиться похожая проблема.Пожалуйста, приложите ваши журналы, если это возможно.

    UPD.Похоже, вы уже обнаружили, что проблема в библиотеке SiliCompressor https://github.com/Tourenathan-G5organisation/SiliCompressor/issues/36

...