0
我想捕獲3種類型的媒體:音頻,視頻或圖片,然後將其路徑寫入數據庫。以下是代碼:調用錄音機和攝像機後得到結果的問題
switch(capture_type){
case audiocapture:
Intent intentA = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intentA, ACTIVITY_RECORD_SOUND);
break;
case videocapture:
Intent intentV = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intentV, ACTIVITY_RECORD_VIDEO);
break;
case piccapture:
Intent intentP = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intentP, ACTIVITY_RECORD_PIC);
break;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case ACTIVITY_RECORD_SOUND:
if (resultCode==RESULT_CANCELED)
Log.e("NewScreen.java","intent didn't return any result, or crashed during its operation..");
try{ContentValues values = new ContentValues();
values.put("audiouri", data.getDataString());
values.put("videouri","NULL");
values.put("picuri", "NULL");
myDB.insertOrThrow("Tag", null, values);
}catch(Exception ex){
Log.e("NewScreen.java", ex.toString());
}
break;
case ACTIVITY_RECORD_VIDEO:
if (resultCode==RESULT_CANCELED)
Log.e("NewScreen.java","intent didn't return any result, or crashed during its operation..");
try{ContentValues values = new ContentValues();
values.put("audiouri","NULL");
values.put("videouri",data.getDataString());
values.put("picuri", "NULL");
myDB.insertOrThrow("Tag", null, values);
catch(SQLException e)
}catch(Exception ex){
Log.e("NewScreen.java", ex.toString());
}
break;
case ACTIVITY_RECORD_PIC:
if (resultCode==RESULT_CANCELED)
Log.e("NewScreen.java","intent didn't return any result, or crashed during its operation..");
try{ContentValues values = new ContentValues();
values.put("audiouri", "NULL");
values.put("videouri","NULL");
values.put("picuri", data.getDataString());
try{Log.d("NewScreen.java","now going to insert values in table..");
myDB.insertOrThrow("Tag", null, values);
}catch(SQLException e){Log.e("NewScreen.java", e.toString());}
Log.d("NewScreen.java","pic successfully inserted in table");
}catch(Exception ex){
Log.e("NewScreen.java", ex.toString());
}
break;
}
}
現在有一個有趣的案例,所有3的行爲有所不同。以下是結果:
ACTIVITY_RECORD_SOUND:resultCode爲等於 'RESULT_CANCELED'
ACTIVITY_RECORD_VIDEO:完美的工作
ACTIVITY_RECORD_PIC:發送resultCode是不等於 'RESULT_CANCELED',但picuri = null ..
聲音和圖像捕獲有什麼問題&如何解決它?