2016-12-02 80 views
0

我想为图像,视频和音频使用相同的onActivityResult。Android,使用相同的onActivityResult图像,视频和音频

问题所在。
当我选择音频时,它会保存视频和图像中音频的路径。 我在分离图像,视频和音频时遇到问题。

我的代码。

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 1; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1; 

音频,图像,视频

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); 
     } 
    }); 

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); 
      } 
     } 
    } 
} 

回答

5

您使用相同的id所有的请求鳕鱼es

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 1; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 1; 

OnActivityResult无法区分那么。你应该给他们一个唯一的ID。

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 2; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3; 
+0

谢谢,这工作 –

1

魅力Geldjust更新根据这个你的静态值..

private static final int SELECT_PICTURE = 1; 
private static final int SELECT_AUDIO = 2; 
private static final int REQUEST_TAKE_GALLERY_VIDEO = 3;