Android VideoView无法播放视频mp4
我使用Android VideoView通过HTTP播放视频文件。我的问题是,从HTTP播放mp4文件时,手机会提示“无法播放视频对不起,无法播放此视频”。但在播放另一个mp4视频文件时也可以 在三星Galaxy S等较新手机上使用时,我的程序可以成功地从HTTP播放mp4视频文件Android VideoView无法播放视频mp4,android,video,mp4,android-videoview,Android,Video,Mp4,Android Videoview,我使用Android VideoView通过HTTP播放视频文件。我的问题是,从HTTP播放mp4文件时,手机会提示“无法播放视频对不起,无法播放此视频”。但在播放另一个mp4视频文件时也可以 在三星Galaxy S等较新手机上使用时,我的程序可以成功地从HTTP播放mp4视频文件 public class VideoPlayActivity extends Activity { VideoView vv; @Override public void onCreate(Bundle saved
public class VideoPlayActivity extends Activity {
VideoView vv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vv = new VideoView(this);
RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
param1.addRule(RelativeLayout.CENTER_IN_PARENT);
vv.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d("Dbg", "OnErrorListener: onError: " + what + ", " + extra);
return false;
}
});
RelativeLayout layout = new RelativeLayout(this);
layout.addView(vv, param1);
setContentView(layout);
playContent();
}
private void playContent() {
String path = "http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4";
vv.setVideoPath(path);
vv.requestFocus();
vv.start();
}
}
我的电话:
Samsung GT-S5830
Android version: 2.3.4
Display: 320x480.
Video file 1 (OK):
Video Codec: H.264
Resolution: 640x360
Others: 16:9, 340kbps, 29.92fps
Audio Codec: AAC, 44kHz 96kbps Stereo.
Video file 2 (Fail):
Video Codec: H.264
Resolution: 640x360
Others: 16:9, 993kbps, 25fps
Audio Codec: AAC 44kHz 125kbps Stereo.
下面是我成功播放视频文件1的硬编码代码
public class VideoPlayActivity extends Activity {
VideoView vv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vv = new VideoView(this);
RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
param1.addRule(RelativeLayout.CENTER_IN_PARENT);
vv.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d("Dbg", "OnErrorListener: onError: " + what + ", " + extra);
return false;
}
});
RelativeLayout layout = new RelativeLayout(this);
layout.addView(vv, param1);
setContentView(layout);
playContent();
}
private void playContent() {
String path = "http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4";
vv.setVideoPath(path);
vv.requestFocus();
vv.start();
}
}
播放视频文件2时的错误日志如下:
11-19 17:49:30.119: I/VideoView(16860): start()
11-19 17:49:30.139: E/MediaPlayer(16860): error (1, -2147483648)
11-19 17:49:30.149: E/MediaPlayer(16860): Error (1,-2147483648)
11-19 17:49:30.149: D/VideoView(16860): Error: 1,-2147483648
11-19 17:49:30.149: D/Dbg(16860): OnErrorListener: onError: 1, -2147483648
值得注意的是,我试图安装MX播放器,并将这两个视频文件下载到手机的SD卡中。MX播放器可以成功播放两个视频文件
public class VideoPlayActivity extends Activity {
VideoView vv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vv = new VideoView(this);
RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
param1.addRule(RelativeLayout.CENTER_IN_PARENT);
vv.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d("Dbg", "OnErrorListener: onError: " + what + ", " + extra);
return false;
}
});
RelativeLayout layout = new RelativeLayout(this);
layout.addView(vv, param1);
setContentView(layout);
playContent();
}
private void playContent() {
String path = "http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4";
vv.setVideoPath(path);
vv.requestFocus();
vv.start();
}
}
那么,有人能帮我回答以下问题吗
11-19 17:49:30.119: I/VideoView(16860): start()
11-19 17:49:30.139: E/MediaPlayer(16860): error (1, -2147483648)
11-19 17:49:30.149: E/MediaPlayer(16860): Error (1,-2147483648)
11-19 17:49:30.149: D/VideoView(16860): Error: 1,-2147483648
11-19 17:49:30.149: D/Dbg(16860): OnErrorListener: onError: 1, -2147483648
谢谢你的建议。谢谢你的回答
我发现视频文件2被编码在H.264主配置文件中,我的手机无法播放。建议在基线配置文件中使用H.264。因此,在将视频转换为基线配置文件后,它可以在我的手机上播放。感谢您的提问和回答,我正在尝试在videoview上播放视频,但遇到了相同的问题,我不明白主配置文件和基线配置文件是什么意思?我如何以及在哪里可以找到更多关于他们的信息?谢谢你在运行时转换它吗?@tim你能回答rudis的问题吗?