Android 工作室中的视频播放器

问题描述

我对此完全陌生,但对于我的研究生工作,我决定至少创建一个视频播放器。我最终编写了这段代码。使用图库可打开图像,但无法在 VideoView 中打开视频。

请帮忙(ฅ'ω'ฅ)

MainActivity.java

package com.example.vpbaimbve;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.io.FileNotFoundException;
import java.io.InputStream;
import android.net.Uri;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private final int Pick_image = 1;

    private VideoView videoView;
    private final int Pick_video = 2;

    MediaController mediaController;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Связываемся ImageView:
        imageView = (ImageView)findViewById(R.id.imageView);
        //Связываемся VideoView:
        videoView = (VideoView)findViewById(R.id.videoView2);

        //Связываемся с нашей кнопкой Button:
        Button PickImage = (Button) findViewById(R.id.button);
        //Настраиваем для нее обработчик нажатий OnClickListener:
        PickImage.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {

                //Вызываем стандартную галерею для выбора изображения с помощью Intent.ACTION_PICK:
                Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                //Тип получаемых объектов - :
                photoPickerIntent.setType("*/*");
                photoPickerIntent.putExtra(Intent.EXTRA_MIME_TYPES,new String[] {"image/*","video/*"});
                //Запускаем переход с ожиданием обратного результата в виде информации об изображении:
                startActivityForResult(photoPickerIntent,Pick_image);
            }
        });
    }

    //Обрабатываем результат выбора в галерее:
    @Override
    protected void onActivityResult(int requestCode,int resultCode,Intent imageReturnedIntent) {
        super.onActivityResult(requestCode,resultCode,imageReturnedIntent);

        switch(requestCode) {
            case Pick_image:
                if(resultCode == RESULT_OK){
                    try {

                        //Получаем URI изображения,преобразуем его в Bitmap
                        //объект и отображаем в элементе ImageView нашего интерфейса:
                        final Uri imageUri = imageReturnedIntent.getData();
                        final InputStream imagestream = getContentResolver().openInputStream(imageUri);
                        final Bitmap selectedImage = BitmapFactory.decodeStream(imagestream);
                        imageView.setimageBitmap(selectedImage);
                    } catch (FileNotFoundException e) {
                        e.printstacktrace();
                    }

                }
        }
        switch (requestCode) {
            case Pick_video:
                if (requestCode == RESULT_OK) {
                    final VideoView videoView2;
                    videoView = (VideoView) findViewById(R.id.videoView2);
                    mediaController = new MediaController(this);
                    videoView.setVideoPath(String.valueOf(Pick_video));
                    mediaController.setAnchorView(videoView);
                    videoView.setMediaController(mediaController);
                    videoView.start();

                }

        }
    }
}

acyivity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:maxHeight="200dp"
        android:src="@mipmap/ic_launcher"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.912"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.928"
        app:srcCompat="@android:drawable/divider_horizontal_textfield" />

    <Button
        android:id="@+id/button"
        android:layout_width="161dp"
        android:layout_height="57dp"
        android:layout_gravity="center"
        android:fontFamily="@font/black_ops_one"
        android:text="Open Video"
        app:backgroundTint="#651FFF"
        app:backgroundTintMode="add"
        app:icon="@android:drawable/ic_media_play"
        app:iconPadding="@dimen/cardview_compat_inset_shadow"
        app:iconTintMode="screen"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.064"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.921"
        app:strokeColor="#000000" />

    <VideoView
        android:id="@+id/videoView2"
        android:layout_width="wrap_content"
        android:layout_height="581dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />


</androidx.constraintlayout.widget.ConstraintLayout>

构建没有报错,应用程序正常安装在手机上,运行正常。该项目是在 android 4.1 上创建的。我正在测试 android 10(没有较小版本的手机(我有一个 amd 处理器 xd(抱歉我的英语))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)