gpt4 book ai didi

android - 在 android mediaplayer 中播放文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:42 25 4
gpt4 key购买 nike

我想播放录制的视频文件,以便在 android 的媒体播放器中播放。我想通过 Intent 调用媒体播放器,并想播放传递的 uri 的相应文件。当我尝试时,我得到了一个异常 ActivityNotFound 任何人都可以帮我提供代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_VIDEO_CAPTURED) {
uriVideo = data.getData();
Toast.makeText(VedioRecording.this, uriVideo.getPath(),
Toast.LENGTH_LONG).show();
}
} else if (resultCode == RESULT_CANCELED) {
uriVideo = null;
Toast.makeText(VedioRecording.this, "Cancelled!", Toast.LENGTH_LONG)
.show();
}
if (requestCode == 2) {
selectedImageUri = data.getData();

// OI FILE Manager
filemanagerstring = selectedImageUri.getPath();

// MEDIA GALLERY
selectedImagePath = getPath(selectedImageUri);

Intent intent1 = new Intent(android.provider.MediaStore.INTENT_ACTION_MUSIC_PLAYER).setData(selectedImageUri);

startActivityForResult(intent1, 3);
// videoviewPlay.setVideoURI(selectedImageUri);
// videoviewPlay.start();
}
if (requestCode == 3) {

}
}


private String getPath(Uri uri) {
String[] projection = { MediaStore.Video.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if (cursor != null) {
// HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
// THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} else {
return null;
}
}
}

这是我的代码,我遇到了 activitynotfound 异常

最佳答案

您遇到 ActivityNotFound 异常的最常见情况是您尝试启动您创建的 Activity 而未在 list 中声明它。

为了确定,请发布您用于启动 Activity 的代码。如果您尝试使用应由应用程序外部框架提供的 Activity ,您可能只是错误地设置了 Intent

代码发布后更新...

您的代码似乎正在使用 Intent 操作 INTENT_ACTION_MUSIC_PLAYER 并将图像 url 作为数据传递(它是图像的路径还是您的变量只是命名错误?)。你得到一个 ActivityNotFoundException 因为系统没有注册任何 Intent 接收器来处理那个场景。此外,如果您查看此常量的文档,您会发现他们在某个时候将其标记为已弃用:

http://developer.android.com/reference/android/provider/MediaStore.html#INTENT_ACTION_MUSIC_PLAYER

我通常会使用 Intent.ACTION_VIEW 并将 mime 类型与数据一起传递。像下面这样的东西......

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(pathToVideoFile), "video/*");
startActivity(intent);

通过将 mime 类型“video/*”传递给 setDataAndType,您可以更加具体地向系统提出请求。

如果你想查询系统以确定是否可以处理一个 Intent(意味着运行你的代码的用户设备注册了一个可以处理 Intent 的 Activity),你可以使用 PackageManager.queryIntentActivities 方法:

queryIntentActivities

关于android - 在 android mediaplayer 中播放文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895017/

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