gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:47:20 26 4
gpt4 key购买 nike

为什么我不能在我的应用程序中播放原始视频?我在我的代码中遗漏了什么吗?每次我在 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:错误 (1,-2147483648)

这个

enter image description here

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>

最佳答案

-2147483648对应于frameworks/native/include/utils/Errors.h中的UNKNOWN_ERROR

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

你可以使用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

related question on StackOverflow

关于java - 无法使用java在android studio中播放原始视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64950735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com