[英]Video can not be played by videoView Android
我正在開發視頻播放器應用。 我希望此應用程序在從SD卡,相冊或手機的任何文件夾中選擇視頻時顯示為選項。 當我選擇我的視頻播放器播放視頻時,它需要應用程序,但視頻不播放。 我已經允許在manifest中讀寫外部存儲。這是我的代碼:
Intent in =getIntent();
file_path = in.getData().getPath();
System.out.println("file path from sdcard:"+file_path);
videoView =(VideoView)findViewById(R.id.video);
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(videoView);
Uri uri=Uri.parse(file_path);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.start();
錯誤:
10-19 10:39:40.917: I/System.out(20430): file path from sdcard:/external/video/media/24363
10-19 10:39:40.987: E/MediaPlayer(20430): Uri is <URL suppressed>
10-19 10:39:40.997: E/MediaPlayer(20430): error (1, -2147483648)
10-19 10:39:41.017: E/MediaPlayer(20430): Error (1,-2147483648)
10-19 10:39:41.017: D/VideoView(20430): Error: 1,-2147483648
編輯:測試手機:Android 4.1與32Gb內置內存,沒有Sdcard。
答案就在這里
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Video.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
我有同樣的問題,沿着許多不同的路徑修復它,最終最終工作的是以下代碼塊:
/* inside onCreate */
VideoView videoView = (VideoView)findViewById(R.id.loginVideoBackground);
videoView.setVideoURI(Uri.parse("android.resource://" + this.getPackageName() + "/raw/lights"));
videoView.start();
我曾經嘗試過:
NullPointerException
) ....有時候更簡單更好
/external/video/media/24363
不正確,請檢查。 本地路徑必須訪問..eg / sdcard / video / media / ..
videoView.setVideoPath("http://www.ebookfrenzy.com/android_book/movie.mp4"); MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.start();
說實話,我在過去和每個帳戶都經歷過類似的問題,我最終發現最好的解決方案是直接擴展SurfaceView。 編寫的代碼數量驚人,並且可以輕松(相對而言)根據您的要求進行有效定制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.