Android视频对流媒体无效
我正在尝试以下代码播放视频Android视频对流媒体无效,android,video-streaming,Android,Video Streaming,我正在尝试以下代码播放视频 public class VidplayerActivity extends Activity { private MediaController mc; String LINK = "http://***/test.3gp"; // 5 mb @Override public void onCreate(Bundle savedInstanceState) { try { super.on
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
[流]
索引=0
编解码器名称=h263
codec_long_name=H.263/H.263-1996,H.263+/H.263-1998/H.263
版本2
编解码器类型=视频
编解码器时间基数=1001/30000
编解码器\标签\字符串=s263
编解码器标签=0x33363273
宽度=176
高度=144
具有_b_帧=0
样品长宽比=12:11
显示纵横比=4:3
pix_fmt=yuv420p
帧速率=25/1
平均帧速率=25/1
时间基数=1/25
语言=und
开始时间=0.000000
持续时间=180.040000
nb_框架=4501
标记:language=und
[/STREAM]
[流]
索引=1
编解码器名称=amrnb
编解码器\u long\u name=自适应多速率窄带
编解码器类型=音频
编解码器\u时间\u基数=0/1
编解码器\标签\字符串=samr
编解码器标签=0x726d6173
抽样率=8000.000000
通道=1
每个样本的位=0
帧速率=0/0
平均帧速率=0/0
时间基数=1/8000
语言=und
开始时间=0.000000
持续时间=180.000000
nb_框架=9000
标记:language=und
[/STREAM]
试试这个::
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"
/>
试试这个::
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"
/>
请阅读此文档:。 仅使用
h263
进行编码是不够的,因为Android中的流媒体格式是有效的
分辨率必须为:176 x 144 px
或480 x 360 px
,并且在文档底部说明:
对于通过HTTP或RTSP传输的视频内容,还有其他要求:
对于3GPP和MPEG-4容器,moov原子必须位于任何mdat原子之前
对于3GPP、MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本之间的间隔可以不超过500kb。为了最小化音频/视频漂移,考虑以较小的块大小交错音频和视频。
请阅读此文档:。 仅使用
h263
进行编码是不够的,因为Android中的流媒体格式是有效的
分辨率必须为:176 x 144 px
或480 x 360 px
,并且在文档底部说明:
对于通过HTTP或RTSP传输的视频内容,还有其他要求:
对于3GPP和MPEG-4容器,moov原子必须位于任何mdat原子之前
对于3GPP、MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本之间的间隔可以不超过500kb。为了最小化音频/视频漂移,考虑以较小的块大小交错音频和视频。
您是在使用真实的设备还是在模拟器上进行测试?这可能就是问题所在。由于仿真器的性能降低,您应该在一些真实的设备上试用,它们应该可以工作。我也有类似的问题。你是在使用真实的设备还是在模拟器上测试?这可能就是问题所在。由于仿真器的性能降低,您应该在一些真实的设备上试用,它们应该可以工作。我也有类似的问题。