无法使用java在android studio中播放原始视频
为什么我不能在我的应用程序中播放原始视频?我的代码中遗漏了什么吗?每次我在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)和 这个无法使用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
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();