Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用java在android studio中播放原始视频_Java_Android - Fatal编程技术网

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

无法使用java在android studio中播放原始视频,java,android,Java,Android,为什么我不能在我的应用程序中播放原始视频?我的代码中遗漏了什么吗?每次我在listview中单击视频名称时,此错误都会出现在我的logcat2020-11-22 12:34:40.306 8395-8426/com.ncf.fitnessandexercise E/mediaplayer活动:错误(1,-2147483648) 2020-11-22 12:34:40.325 8395-8395/com.ncf.fitnessandexercise E/MediaPlayer:Error(1,-2

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

这个

public class Zumba扩展了AppCompative活动{
视频视图;
列表视图列表视图;
ArrayList视频列表;
阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zumba);
videoView=findviewbyd(R.id.videoView);
listView=findViewById(R.id.lvideo);
videoList=新的ArrayList();
视频列表。添加(“快速减肥的基本步骤”);
视频列表。添加(“Closer_Zumba_Live_Love_Party”);
视频列表。添加(“Senorita_Zumba_Dance_Fitness”);
视频列表。添加(“短小的尊巴舞”和“初学者锻炼”);
adapter=newarrayadapter(这是android.R.layout.simple\u list\u item\u 1,videoList);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
开关(位置){
案例0:
videoView.setVideoURI(Uri.parse(“android.resource://“+getPackageName()+”/“+R.raw.video));
打破
案例1:
videoView.setVideoURI(Uri.parse(“android.resource://“+getPackageName()+”/“+R.raw.video2));
打破
案例2:
videoView.setVideoURI(Uri.parse(“android.resource://“+getPackageName()+”/“+R.raw.video3));
打破
案例3:
videoView.setVideoURI(Uri.parse(“android.resource://“+getPackageName()+”/“+R.raw.video4));
打破
违约:
打破
}
setMediaController(新的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>

可能您正在使用不受支持的视频格式,请查看VideoView支持的格式:


如果您的视频格式不受支持,您可以使用ExoPlayer

-2147483648对应于frameworks/native/include/utils/Errors.h中的未知错误

这表明错误的来源很难确定,因为它是一个非常通用的返回值,由上面提到的编解码器和兼容性问题引发,还有线程取消和其他几种类型

您可以使用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();


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

这可能会对您有所帮助,
player.play();