Мне нужна помощь с проблемой VideoView
в Android. Я пробовал все и даже смотрю на вопросы stackoverflow, но никто не имеет этой точной проблемы.videoView ничего не показывает
Проблема: Взгляд должен показывать отборные видео из галереи (это действие вызывается с помощью кнопки), но несмотря на то, что нет никакой ошибки в журнале и Ури не нуль ничего показано в представлении , Все это находится в Fragment
внутри ViewPager
. (Если смотреть на код ниже, то Log.d("FragCamera", "I_REQUEST_VIDEO_PICK mediaUri : " + mediaUri);
запускается и mediaUri не null
. Так что я не знаю, что еще может быть проблема.)
Btw, я использую Зефир реальное устройство, чтобы проверить это с помощью 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 ok, я могу дать правильное (реальное) значение mediaUri из журнала. Это: 'content: // com.android.providers.media.documents/document/video% 3A27222' –