如果这是一个新手问题,请原谅我,但是......
播放视频时,最好是使用VideoView / MediaPlayer,还是使用intent.ACTION_VIEW并让用户选择他/她的媒体播放器更好?
我需要播放的视频是非常大的mp4文件(20 meg-50 + meg),并未针对移动设备进行优化。使用VideoView / MediaPlayer时,我遇到了缓冲问题。但是,当我使用intent.ACTION_VIEW时,我可以使用像RealPlayer这样的东西,它可以更好地缓冲(至少在我的情况下)。另外,RealPlayer和我试过的其他玩家在不重新启动VideoView / MediaPlayer等视频的情况下处理方向更改。但是,从用户体验的角度来看,我不知道第二种方法是否“可接受”。
以下是我的VideoView / MediaPlayer方法的代码:
XML:
<VideoView android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
爪哇:
public class VideoViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
VideoView videoView = (VideoView) findViewById(R.id.videoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
Uri video = Uri.parse("http://www.my.big.video.com/video.mp4");
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();
}
这是我的第二种方法的代码:
爪哇:
public class VideoViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String videoUrl = "http://www.my.big.video.com/video.mp4";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(videoUrl));
startActivity(i);
}
建议?
答案 0 :(得分:3)
您无法假设用户拥有RealPlayer或任何其他特定媒体播放器,因此该方法希望意图打开能够很好地处理文件的媒体播放器。为了避免方向改变问题,我将VideoView的景观锁定为横向(谁想要以纵向观看视频?)。我确信这被认为是一种廉价的出路,但它确实有效。