2016-08-09 2 views
0
import android.Manifest; 
import android.content.Context; 
import android.content.Intent; 
import android.graphics.drawable.ColorDrawable; 
import android.os.Bundle; 
import android.os.Environment; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Toast; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.util.Date; 
import cafe.adriel.androidaudiorecorder.AndroidAudioRecorder; 
import cafe.adriel.androidaudiorecorder.Util; 
import cafe.adriel.androidaudiorecorder.example.R; 

public class MainActivity extends AppCompatActivity 
{ 
    public static final String EXTRA_FILE_PATH = "filePath"; 

    public static final String EXTRA_COLOR = "color"; 
    static Date createdTime= new Date(); 
    public static final String AUDIO_FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + createdTime + "_rec.wav"; 
    public static final int RECORD_AUDIO = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (getSupportActionBar() != null) { 
      getSupportActionBar().setBackgroundDrawable(
        new ColorDrawable(getResources().getColor(R.color.colorPrimaryDark))); 
     } 

     Util.requestPermission(this, Manifest.permission.RECORD_AUDIO); 
     Util.requestPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == RECORD_AUDIO) { 
      if (resultCode == RESULT_OK) { 
       Toast.makeText(this, "Audio recorded successfully!", Toast.LENGTH_SHORT).show(); 
      } else if (resultCode == RESULT_CANCELED) { 
       Toast.makeText(this, "Audio was not recorded", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 

    public void recordAudio(View v) { 
     AndroidAudioRecorder.with(this) 
       .setFilePath(AUDIO_FILE_PATH) 
       .setColor(getResources().getColor(R.color.recorder_bg)) 
       .setRequestCode(RECORD_AUDIO) 
       .record(); 
    } 
} 
+0

これは外部メモリにあります。 SDカードではありません。しかし、あなたがそのparhにファイル名を追加したのと同じように、最初にフォルダ名を追加することができます。 – greenapps

+0

追加されたフォルダ名が存在しない場合、これは失敗します – nosyjoe

答えて

3

は1 Android's default external storage foldersを使用することを検討してください(現在のファイルをSDカードに直接保存されている)この

File path = Environment.getExternalStoragePublicDirectory(
    Environment.DIRECTORY_MUSIC); 

あなたがこれを使用することができますようDIRECTORY_MUSICFile class constructorを使用してSDカードに新しいフォルダを作成します。

File audioFolder = new File(Environment.getExternalStorageDirectory(), 
    "newaudiofolder") 
if (!audioFolder.exists()) { 
    boolean success = audioFolder.mkdir() 
    if (success) { 
     // save the file 
    } 
} 
+0

これはSDカードのフォルダではなく外部メモリのフォルダです。関数名を見てください。 – greenapps

+0

すべてのデバイスにsdカードスロットがあるわけではありません。 [Google Documenation](https://developer.android.com/guide/topics/data/data-storage.html#filesExternal)によると、外部ストレージは、リムーバブルストレージメディア(SDカードなど)または内部(非リムーバブル)ストレージ " - 私と元のポスターには、外部ストレージは正しい選択のようです。 – nosyjoe

+0

SDカードスロットがない場合、確かにSDカードはありません。外部メモリのみ。 OPはSDカードについて語った。 – greenapps

関連する問題