2011-09-20 51 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