无法使用java在android studio中播放原始视频

kulphzqa  于 2021-07-11  发布在  Java
关注(0)|答案(3)|浏览(423)

为什么我不能在我的应用程序中播放原始视频?我的代码有什么遗漏吗?每次单击listview中的视频名称时,此错误都会出现在我的logcat 2020-11-22 12:34:40.306 8395-8426/com.ncf.fitnessandexercise e/mediaplayernative:error(1,-2147483648)2020-11-22 12:34:40.325 8395-8395/com.ncf.fitnessandexercise e/mediaplayer:error(1,-2147483648)和

public class Zumba extends AppCompatActivity {
    VideoView videoView;
    ListView listView;
    ArrayList<String> videoList;
    ArrayAdapter<String> adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zumba);
        videoView=findViewById(R.id.videoview);
        listView=findViewById(R.id.lvideo);
        videoList= new ArrayList<>();
        videoList.add("Basic_Zumba_Steps_for_Quick_Weight_Loss_Fitness");
        videoList.add("Closer_Zumba_Live_Love_Party");
        videoList.add("Senorita_Zumba_Dance_Fitness");
        videoList.add("Short_Zumba_Dance_Workout_for_Beginners");

        adapter= new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,videoList);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                    case 0:
                        videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video));
                        break;
                    case 1:
                        videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video2));
                        break;
                    case 2:
                        videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video3));
                        break;
                    case 3:
                        videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video4));
                        break;

                    default:
                        break;
                }
                videoView.setMediaController(new MediaController(Zumba.this));
                videoView.requestFocus();
                videoView.start();
            }
        });
    }
}

这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.ncf.fitnessandexercise.Zumba">

    <VideoView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:id="@+id/videoview"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"/>

    <ListView
        android:id="@+id/lvideo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/videoview">
    </ListView>

</RelativeLayout>
plupiseo

plupiseo1#

-2147483648对应于frameworks/native/include/utils/errors.h中的未知\u错误
这表明错误的来源很难确定,因为它是一个非常通用的返回值,由上面提到的编解码器和兼容性问题引发,但也有线程取消和其他几种类型。
您可以使用android exoplayer,它支持大多数视频格式

implementation 'com.google.android.exoplayer:exoplayer:2.X.X'

创建播放器

SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build();

生成媒体项。

MediaItem mediaItem = MediaItem.fromUri(videoUri);

设置要播放的媒体项。

player.setMediaItem(mediaItem);

准备好球员。

player.prepare();

开始播放。

player.play();

github.com/google/exoplayer
堆栈溢出的相关问题

z9smfwbn

z9smfwbn2#

可能您使用的是不支持的视频格式,请查看videoview支持的格式:https://developer.android.com/guide/topics/media/media-formats
如果您的视频格式不受支持,您可以使用exoplayerhttps://github.com/google/exoplayer

vc9ivgsu

vc9ivgsu3#

请尝试在物理设备上运行,而不是在模拟器上运行。

相关问题