我需要帮助,解决Android中的VideoView
问题。我已经尝试了一切,甚至查看了stackoverflow的问题,但没有人有这个确切的问题。videoView不显示任何东西
问题: 观应该显示从图库中挑选视频(该操作是由一个按钮触发),但即使没有错误日志中和URI不为空没有什么是在视图中显示。所有这些都在ViewPager
的Fragment
之内。 (如果看一下下面的代码,该Log.d("FragCamera", "I_REQUEST_VIDEO_PICK mediaUri : " + mediaUri);
运行和mediaUri不null
。因此,我不知道还有什么可能是问题。)
顺便说一句,我使用的是棉花糖真实设备用USB来测试这个调试功能,应用程序设置为JellyBean及以上。我不认为这是一个权限问题,因为在同一页面我有代码使用相同的权限,它工作正常。
有谁能告诉我为什么我不能让它工作?
===================================
这是我的代码。它已被剥离为触发此问题的基本代码。 checkPermission()
是一种检查和请求运行时权限的方法,并且它可以正常工作,因为使用此功能和相同权限的其他代码工作正常。
fragment_camera_action.xml
<VideoView
android:id="@+id/preview_up_vid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"/>
fragment.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_camera_action, container, false);
uploadedVid = (VideoView) v.findViewById(R.id.preview_up_vid);
btn_getvid = (Button) v.findViewById(R.id.btn_getvid);
MediaController mediaController = new MediaController(ctx);
mediaController.setAnchorView(uploadedVid);
uploadedVid.setMediaController(mediaController);
btn_getvid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("FragCamera", "btn_getvid on click.");
String[] permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE};
if (checkMPermission(ctx, permissions, P_REQUEST_PICK_VIDEO)) {
pickVideo();
}
}
});
return v;
}
private void pickVideo() {
Log.d("FragCamera", "pickVideo()");
Intent pickPictureIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickPictureIntent.setType("video/*");
this.startActivityForResult(Intent.createChooser(pickPictureIntent, "Select Video"), I_REQUEST_VIDEO_PICK);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("FragCamera", "onActivityResult()");
Uri mediaUri;
if (resultCode == RESULT_OK) {
switch (requestCode) {
case I_REQUEST_VIDEO_PICK:
uploadedVid.setVisibility(View.VISIBLE);
Log.d("FragCamera", "pickVideo() RESULT_OK");
if (data != null) {
mediaUri = data.getData();
Log.d("FragCamera", "I_REQUEST_VIDEO_PICK mediaUri : " + mediaUri);
uploadedVid.setVideoURI(mediaUri);
uploadedVid.setZOrderOnTop(true);
uploadedVid.start();
}
break;
default:
break;
}
}
}
你可以显示你的uri吗? –
@VivekMishra好的,我可以从日志中给出mediaUri的正确(实际)值。它是:'content:// com.android.providers.media.documents/document/video%3A27222' –