我正在尝试播放代码播放视频。
public class VidplayerActivity extends Activity {
private MediaController mc;
String LINK = "http://***/test.3gp"; // 5 mb
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
VideoView vd = (VideoView) findViewById(R.id.delta);
Uri uri = Uri.parse(LINK);
mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(uri);
vd.start();
}
catch(Exception e) {
System.out.println(e.getStackTrace());
}
}
}
在Android 1.5和1.6中显示“抱歉,此视频无法有效传输到此设备”。视频详情如下
修改
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自 '/home/cvbcvb/Desktop/test.3gp':
元数据:
major_brand : 3gp4 minor_version : 512 compatible_brands: isomiso23gp4
持续时间:00:03:00.04,开始:0.000000,比特率:150 kb / s
Stream #0.0(und): Video: h263, yuv420p, 176x144 [PAR 12:11 DAR
4:3],138 kb / s,25 fps,25 tbr,25 tbn,29.97 tbc
Stream #0.1(und): Audio: amrnb, 8000 Hz, 1 channels, flt, 8 kb/s
[STREAM]
索引= 0
codec_name = H263
codec_long_name = H.263 / H.263-1996,H.263 + / H.263-1998 / H.263 第2版
codec_type =视频
codec_time_base =三万分之一千○一
codec_tag_string = S263
codec_tag = 0x33363273
宽度= 176
高度= 144
has_b_frames = 0
sample_aspect_ratio = 12:11
display_aspect_ratio = 4:3
pix_fmt = YUV420P
r_frame_rate = 25/1
avg_frame_rate = 25/1
那么time_base =25分之1
语言= UND
start_time = 0.000000
持续时间= 180.040000
nb_frames = 4501
标签:语言= UND
[/ STREAM]
[STREAM]
索引= 1
codec_name = amrnb
codec_long_name =自适应多速率窄带
codec_type =音频
codec_time_base = 0/1
codec_tag_string = SAMR
codec_tag = 0x726d6173
sample_rate = 8000.000000
频道= 1
bits_per_sample = 0
r_frame_rate = 0/0
avg_frame_rate = 0/0
那么time_base =8000分之1
语言= UND
start_time = 0.000000
持续时间= 180.000000
nb_frames = 9000
标签:语言= UND
[/ STREAM]
答案 0 :(得分:1)
请阅读本文件:Android Supported Media Formats。
仅使用H 263
进行编码仅限于在Android中使用有效的流式传输格式。
决议必须是:176 x 144 px
或480 x 360 px
,并且在文档的底部也有说明:
对于通过HTTP或RTSP流式传输的视频内容,还有其他要求:
对于3GPP和MPEG-4容器,moov原子必须在任何mdat原子之前。
对于3GPP,MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本可以相隔不超过500KB。为了最大限度地减少音频/视频漂移,请考虑以较小的块大小交错音频和视频。
答案 1 :(得分:0)
试试这个::
mVideoView = (VideoView) findViewById(R.id.surface_view);
if (path == "") {
// Tell the user to provide a media file URL/path.
Toast.makeText(
VideoViewDemo.this,
"Please edit VideoViewDemo Activity, and set path"
+ " variable to your media file URL/path",
Toast.LENGTH_LONG).show();
} else {
mVideoView.setVideoPath(path);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
<强> videoview.xml 强>
<VideoView
android:id="@+id/surface_view"
android:layout_width="320px"
android:layout_height="240px"
/>