4

以下のコードを使用してビデオをキャプチャしましたが、アンドロイドでキャプチャされたビデオの長さを取得するにはどうすればよいですか? また、ユーザーがビデオを破棄して新しいビデオを録画し、新しいビデオの長さを取得する場合もあります。

Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
4

3 に答える 3

9

最も簡単な方法は次のとおりだと思います。

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(uriOfFile);
int duration = mp.getDuration();
mp.release();
/*convert millis to appropriate time*/
return String.format("%d min, %d sec", 
        TimeUnit.MILLISECONDS.toMinutes(duration),
        TimeUnit.MILLISECONDS.toSeconds(duration) - 
        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
    );
于 2013-07-30T10:40:06.560 に答える
8

カーソルを使用すると期間を取得できduration、カーソルには列があり、文字列として取得できます。

Cursor cursor = MediaStore.Video.query(getContentResolver(),data.getData(),
                new String[] { MediaStore.Video.VideoColumns.DURATION });
System.out.println(">>>>>>>>>>"+cursor.getCount());
cursor.moveToFirst();

String duration = cursor.getString(cursor.getColumnIndex("duration"));
于 2012-06-04T14:59:43.677 に答える