2011-09-20 48 views
1

我正在尝试播放视频的代码。Android视频无法用于流式传输

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帧,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

language = und

start_time = 0。 000000

duration = 180。040000

nb_frames = 4501

TAG:语言= 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

TAG:语言= UND

[/ STREAM]

回答

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" 
/> 

And also view this

1

请阅读下面的文档:Android Supported Media Formats。 只需使用H 263进行编码,在Android中进行流式传输是不够的。

决议必须是:176 x 144 px480 x 360 px以及在文档的底部中指出:

对于被流传输通过HTTP或RTSP视频内容,还有额外的要求:

对于3GPP和MPEG-4容器,moov原子必须在任何mdat原子之前。

对于3GPP,MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本可能不超过500 KB。为了尽量减少这种音频/视频漂移,考虑以较小的块大小交错音频和视频。

+0

看到我的编辑可以找到完整的视频细节。 – ArK

+0

您使用的是真实设备还是您正在仿真器上测试? –

+0

我使用eclipse仿真器 – ArK