0

数分間記録してアプリフォルダーに保存するアプリを構築しています。フォルダーからすべての.3gpファイルを取得してサーバーに投稿する方法が必要です.Androidでタイプファイルを検索する方法がわかりません.ここで投稿を検索しましたが、運がありませんでした。

録音を保存するために使用するコードは次のとおりです。ここで手を貸してください...

public void record_file(){

    UserFunctions userFunction = new UserFunctions();

    // Get Global Vars from Database
    DatabaseHandler db = new DatabaseHandler(getApplicationContext());
    HashMap<String, String> global = db.getGlobalVars();

    id = global.get("id");
    record = global.get("record");
    Log.v("RECORD", "Id: " + id);

    JSONObject json = userFunction.listenVARIABLES(id);

    int duration = Integer.parseInt(record_minutes) * 60 * 1000;


    if (record == "1") {
        try {
    // Save file local to app
            mFileName = path + i + "_record_" + id_ + ".3gp";

            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mRecorder.setOutputFile(mFileName);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mRecorder.setMaxDuration(duration);

            try {
                mRecorder.prepare();
            } catch (IOException e) {
                Log.e("AUDIO_RECORDER", "prepare() failed");
            }

            mRecorder.start();

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
4

2 に答える 2

1

ある種の解決策は、特定のフォルダー内のファイルを取得し、拡張子が 3gp のファイルを解析することです。

String path = Environment.getExternalStorageDirectory().toString()+"/yourfolder";
File folder = new File(path);
File filelist[] = folder.listFiles();
ArrayList<File> 3gpfiles = new ArrayList<File>(); // or you can change File to String...
for( File file : filelist )
{
    String fileName = file.getName();
    if( fileName.substring(fileName.length()-4, fileName.length()).equalsIgnoreCase(".3gp") )
        3gpfiles.add(file); // ... and then here change file to fileName
}
于 2013-05-08T05:35:20.507 に答える