为什么我不能在我的应用程序中播放原始视频?我的代码有什么遗漏吗?每次单击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>
3条答案
按热度按时间plupiseo1#
-2147483648对应于frameworks/native/include/utils/errors.h中的未知\u错误
这表明错误的来源很难确定,因为它是一个非常通用的返回值,由上面提到的编解码器和兼容性问题引发,但也有线程取消和其他几种类型。
您可以使用android exoplayer,它支持大多数视频格式
创建播放器
生成媒体项。
设置要播放的媒体项。
准备好球员。
开始播放。
github.com/google/exoplayer
堆栈溢出的相关问题
z9smfwbn2#
可能您使用的是不支持的视频格式,请查看videoview支持的格式:https://developer.android.com/guide/topics/media/media-formats
如果您的视频格式不受支持,您可以使用exoplayerhttps://github.com/google/exoplayer
vc9ivgsu3#
请尝试在物理设备上运行,而不是在模拟器上运行。