首页 > 解决方案 > 压缩的视频文件无法在 WebServer 的 VideoView 中播放

问题描述

我正在开发录制视频并保存到网络服务器的应用程序,由于录制的视频太大,我使用了一些压缩技术GiraffeCompressorSiliCompressor来减小原始视频的大小。

应用压缩技术后,视频大小减小,我还将压缩的视频文件播放到我的VideoView

到这里一切正常

当我将压缩的视频文件上传到服务器并尝试从VideoView中的 url 播放视频时,它没有播放。

这是我在VideoView中从 url 播放视频的源代码。我的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();
            }
        });

这是我的日志猫

   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

标签: androidandroid-studiovideo-streamingandroid-videoview

解决方案


  1. 请尝试使用 vv.setVideoPath(testVideoURL); ,而不是vv.setVideoURI(uri);可能这可以帮助。

  2. 我只是猜测,但如果在后端使用自签名 https 证书,可能会出现类似问题。如果可能,请附上您的日志。

    UPD。看起来您已经发现问题出在SiliCompressor库内部https://github.com/Tourenathan-G5organisation/SiliCompressor/issues/36


推荐阅读