Android VideoView在特定时间后停止流式传输

sol*_*lid 10 java android video-streaming android-videoview

我在android中从这个URL播放实时流

到目前为止,我已经设法在videoView中播放视频,问题是视频在23秒后完全停止,所以我使用了videoview方法setOnCompletionListener(...)以便再次启动视频,但是,这提供了糟糕的体验观众,因为它每23秒停一次并重新开始,也会错过几帧.

所以我的问题是"如何在播放当前缓冲视频的同时制作videoView缓冲视频的下一部分.

这是我的代码

    public class TvActivity extends Activity {

    // Declare variables
    ProgressDialog pDialog;
    VideoView videoview;


    // Insert your Video URL
    String VideoURL = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the layout from video_main.xml
        setContentView(R.layout.videoview_main);
        // Find your VideoView in your video_main.xml layout
        videoview = (VideoView) findViewById(R.id.VideoView);
        // Execute StreamVideo AsyncTask
        VideoURL = "http://ns3622101.ip-149-202-201.eu:8000/live/fr443500/75019pa/286.ts";

        // Create a progressbar
        pDialog = new ProgressDialog(TvActivity.this);
        // Set progressbar title
        pDialog.setTitle("Video Streaming ");
        // Set progressbar message
        pDialog.setMessage("buffering ...");
        pDialog.setIndeterminate(true);
        pDialog.setCancelable(true);
        // Show progressbar
        pDialog.show();

        try {
            // Start the MediaController
            final MediaController mediacontroller = new MediaController(
                    TvActivity.this);
            mediacontroller.setAnchorView(videoview);

            // Get the URL from String VideoURL
            final Uri video = Uri.parse(VideoURL);
            videoview.setMediaController(mediacontroller);
            videoview.setVideoURI(video);
            videoview.requestFocus();
            videoview.setOnPreparedListener(new OnPreparedListener() {

                // Close the progress bar and play the video
                public void onPrepared(MediaPlayer mp) {
                    pDialog.dismiss();
                    videoview.start();
                }
            });

            videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    videoview.stopPlayback();
                    videoview.setVideoURI(video);
                    videoview.requestFocus();
                    videoview.start();
                }
            });

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


    }



}
Run Code Online (Sandbox Code Playgroud)

Utt*_*ara 5

当您从直播网址播放视频时,我建议您使用第三方播放器流式传输视频和缓冲视频的下一部分,我建议您使用Android GirrafePlayer这是好玩家从这里获取它

as you are Streaming .ts file我不认为android videoview会传输这个视频文件,所以尝试使用支持.ts文件流的播放器来传输这个视频文件.