使用下面的代碼捕獲視頻,但如何獲得捕獲的視頻在Android的持續時間? 也有時用戶丟棄視頻和錄製新視頻,然後獲得新視頻的持續時間。如何獲取在android中捕獲的視頻的持續時間?
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
使用下面的代碼捕獲視頻,但如何獲得捕獲的視頻在Android的持續時間? 也有時用戶丟棄視頻和錄製新視頻,然後獲得新視頻的持續時間。如何獲取在android中捕獲的視頻的持續時間?
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent, TAKE_VIDEO);
使用遊標就可以得到持續時間和有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"));
1)以上建議正在從錄製的視頻獲取持續時間。 2)但是,當我試圖從庫中選擇的視頻檢索持續時間時,它拋出IllegalArgumentException。 – Harish
我認爲最簡單的方法是:
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))
);
通過uriOfFile,你的意思是附加了'file://'前綴的文件路徑嗎? –
請不要創建MediaPlayer實例來獲取文件長度。在android中有一個專用的MediaMetadataRetriever類。更多詳細信息請參閱以下答案:stackoverflow.com/a/33247728/1713920 –
可能重複:http://stackoverflow.com/q/3936396/1012284 –
@PadmaKumar它不是重複,也有剛剛光標也沒有持續時間 –