iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 21
0
case R.id.record_sound:
// 錄音檔案名稱
final File recordFile = configFileName("R", ".mp3");

// 如果已經有錄音檔,詢問播放或重新錄製
if (recordFile.exists()) {
// 詢問播放還是重新錄製的對話框
AlertDialog.Builder d = new AlertDialog.Builder(this);

d.setTitle(R.string.title_record)
.setCancelable(false);
d.setPositiveButton(R.string.record_play,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 播放
Intent playIntent = new Intent(
EditActivity.this,PlayActivity.class);
playIntent.putExtra("fileName",
recordFile.getAbsolutePath());
startActivity(playIntent);
}
});
d.setNeutralButton(R.string.record_new,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
goToRecord(recordFile);
}
});
d.setNegativeButton(android.R.string.cancel, null);

// 顯示對話框
d.show();
}
// 如果沒有錄音檔,啟動錄音元件
else {
goToRecord(recordFile);
}

break;
  • 創建錄音檔名稱。
  • 如果檔案存在,則跳出Dialog,詢問是否要播放或者重新錄製,以及取消按鈕
  • 播放則進PlayActivity。
  • 取消就關閉而已沒啥。
  • 重新錄製就進goToRecord這個方法,下面來explain這個function。
private void goToRecord(File recordFile) {
        // 錄音
        Intent recordIntent = new Intent(this, RecordActivity.class);
        recordIntent.putExtra("fileName", recordFile.getAbsolutePath());
        startActivityForResult(recordIntent, START_RECORD);
    }
  • 傳入檔案位置,並且開啟RecordActivity,存入相對入徑。
  • 使用startActivityForResult。
  case START_RECORD:
                    // 設定錄音檔案名稱
                    item.setFileName(fileName);
  • 重新設定檔案名稱。

上一篇
[DAY20]GoogleMap
下一篇
[DAY22]File-01
系列文
Java 與 Kotlin 入門30

尚未有邦友留言

立即登入留言