Cha*_*eld 0 media audio video android image
我想对图像,视频和音频使用相同的onActivityResult.
问题.
当我选择音频时,它会保存视频和图像中的音频路径.我在分离图像,视频和音频时遇到问题.
我的代码.
private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 1;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1;
Run Code Online (Sandbox Code Playgroud)
音频,图像,视频
addVideo.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Video"),REQUEST_TAKE_GALLERY_VIDEO);
}
});
addAudio.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("audio/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Audio"),SELECT_AUDIO);
}
});
addImage.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
}
});
Run Code Online (Sandbox Code Playgroud)
onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == REQUEST_TAKE_GALLERY_VIDEO) {
Uri selectedVideoUri = data.getData();
selectedVideoPath = getPath(selectedVideoUri);
}
if (requestCode == SELECT_AUDIO) {
Uri selectedAudioUri = data.getData();
selectedAudioPath = getPath(selectedAudioUri);
}
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
File f = new File(selectedImagePath);
if(f.exists()){
//w, h
Bitmap myBitmap = resizeImage.getCompressedBitmap(200, 200, f);
img.setImageBitmap(myBitmap);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您对所有请求代码使用相同的ID
private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 1;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1;
Run Code Online (Sandbox Code Playgroud)
然后OnActivityResult无法区分.你应该给他们一个唯一的身份证.
private static final int SELECT_PICTURE = 1;
private static final int SELECT_AUDIO = 2;
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1228 次 |
| 最近记录: |