tôi đang chơi live stream từ this URL trong androidAndroid VideoView dừng phát trực tiếp sau một thời gian cụ thể
Cho đến nay, tôi đã được quản lý để phát video trong videoView, vấn đề là video dừng lại chính xác sau 23 giây, vì vậy tôi có sử dụng phương pháp videoview setOnCompletionListener
(...) để bắt đầu lại video, tuy nhiên, điều này mang lại trải nghiệm không tốt cho người xem, bởi vì nó dừng sau mỗi 23 giây và bắt đầu lại, cũng bỏ lỡ nhiều khung hình.
Vì vậy, câu hỏi của tôi là "làm thế nào để làm cho videoView đệm phần tiếp theo của video trong khi chơi video đệm hiện hành.
đây là mã của tôi
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();
}
}
}
cảm ơn câu trả lời, bây giờ nó phát lại cùng một mức tăng video đệm và một lần nữa, mọi đề xuất sẽ giúp ích. – solid
i cập nhật ans, thêm tạm dừng tuyên bố trong kiểm tra chưa đầy đủ là nó làm việc hay không –
Tôi không chắc chắn tại sao đặt pause() sau khi bắt đầu() sẽ sửa bất kỳ suy nghĩ, bất kỳ cách nào thử nghiệm nó, kết quả đã tạm dừng video. – solid