2016-04-30 81 views
1

我想從設備播放視頻VideoView。這裏是我的代碼:Android VideoView不工作在sdk 4.3

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    vView = (VideoView) findViewById(R.id.videoView); 
    mc = new MediaController(this); 
    vView.setMediaController(mc); 
    String new_emulator_path = "/storage/emulated/0/Download/testvid.mp4"; 
    Uri uri = Uri.parse(new_emulator_path); 
    vView.setVideoURI(uri); 
    vView.requestFocus(); 
    mc.show(); 
    vView.start(); 
} 

...

<VideoView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/videoView" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:adjustViewBounds="true" /> 

雖然使用相同的代碼上5.1它起着罰款,但在4.3及以下不玩了。以下是日誌摘錄:

04-30 00:28:09.141 2293-2293/com.ebook.video D/MediaPlayer: getMetadata 
04-30 00:28:09.249 2293-2314/com.ebook.video E/MediaPlayer: error (1, -2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video E/MediaPlayer: Error (1,-2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video D/VideoView: Error: 1,-2147483648 

我看過很多關於此錯誤代碼的線程,但無法理解任何解釋。編輯:我試圖播放不同格式的視頻 - mkv(H264 mpeg-4 AVC),3gp(H263),mp4(H264 mpeg-4 AVC),flv(FLV1)。 3gp擴展和H263格式的視頻播放效果良好,而其他視頻則如上所述提供錯誤信息。任何想法如何解決這個問題?

回答

0

根據Documentation Android不支持Android 5.1之前的H265 所以我覺得你有這個問題。您可以使用ExoPlayer(或更好的方式ExoMedia簡單的包裝VideoPlayer & ExoPlayer)。

BTW使用下面這段代碼可以幫助你:

VideoView videoView = (VideoView) findViewById(R.id.videoView1); 
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView); 
videoView.setMediaController(mediaController); 
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
        Log.i(TAG,"Hoooray"); 
       } 
     }); 

videoView.start(); 

當我從你的代碼中發現了要顯示在模擬器的視頻所以第一次看到this有關的職位。

+0

對於我嘗試在4.3 sdk中播放的大部分視頻,編碼格式爲H264。根據文檔H.264 AVC自從Android 3+本身就可用。如果我的解釋錯了,請糾正我。 – jay

+0

@AMRUTHAKALIVARAPU你說得對。你能提供更多的日誌嗎?還從以下uri測試Mp4視頻,我在VideoView上測試它並正常工作。 http://www.sample-videos.com/ – Amir

+0

我已經從你提到的鏈接測試過mp4 vids,我仍然得到相同的錯誤。 – jay