編輯:關於Android編程
錄制視頻需要分段保存,可以從系統源碼考慮,看了以下一些代碼:
framework/av/media/libstagefright/MPEG4Writer.cpp package/apps/Camera/src/com/android/camera/actor/VideoActor.java主要從MPEG4Writer.cpp中的kMax32BitFileSize 和入手,如下,修改單個文件最大容量為56M(0x3800000),發現利用系統Camera錄像時,到達閥值後會提示“已達到大小上限”,並自動停止,保存已經錄制的視頻。
static const int64_t kMax32BitFileSize = 0x3800000;//0x00ffffffffLL; // 2^32-1 : max FAT32 static const int64_t kMax32BitDuration = 0x007fffffffLL;
然後追蹤到VideoActor的處理。有一個思路,就是停止的時候,進行文件保存後立即重新啟動錄像。
public void stopVideoRecordingAsync() { // TChip ZJ
// for snapshot
stopObjectTracking();
mStopVideoRecording = true;
Log.d(TAG, "stopVideoRecordingAsync() mMediaRecorderRecording=" + mMediaRecorderRecording
+ ", mRecorderBusy=" + mRecorderBusy
+ ", isVideoProcessing()" + isVideoProcessing()
+ ", mStopVideoRecording =" + mStopVideoRecording);
mVideoContext.getZoomManager().changeZoomForQuality();
mVideoContext.setSwipingEnabled(true);
mHandler.removeMessages(UPDATE_RECORD_TIME);
mVideoContext.getShutterManager().setVideoShutterMask(false);
if (isVideoProcessing()) {
return;
}
if (mRecorderBusy) { // return for recorder is busy.
return;
}
mRecorderBusy = true;
mRecordingView.hide();
if (mMediaRecorderRecording) {
mVideoContext.getShutterManager().setVideoShutterEnabled(false);
if (mStoppingAction != STOP_RETURN_UNVALID && mCallFromOnPause != true) {
// mVideoContext.showProgress(mVideoContext.getResources().getString(R.string.saving)); // TChip ZJ : 去掉保存UI
}
mVideoSavingTask = new SavingTask();
mVideoSavingTask.start();
} else {
mRecorderBusy = false;
releaseRecorder();
if (mStoppingAction == STOP_RETURN_UNVALID) {
doReturnToCaller(false);
}
}
}
先吃飯了,明天再看實現的可行性以及效果(是否漏秒)。
開發者頭條(三):實現tab與viewpager的聯動
知識點:第一:實現首頁的3個tab,讓tab與viewpager實現聯動第二:輪播圖的無限次自動循環滾動。先看效果圖:項目結構圖:我們在捋順一下邏輯: 每一個側拉頁的it
Android自定義TitleView標題開發實例
Android開發過程中,經常遇到一個項目需要重復的定義相同樣式的標題欄,Android相繼推出了actionBar, toolBar, 相信有用到的朋友也會遇到一些不如
Android 數據存儲----SQLite
數據庫 SQLiteOracle SQLServer mySql SQLite 關系型數據SQLite 數據庫Android系統中集成了輕量級的數據SQLite一, 特點
一步一步教你在 Android 裡創建自己的賬號系統(二)--同步數據以及設計賬號頁面
在前一篇文章中(一步一步教你在 Android 裡創建自己的賬號系統(一)),我向大家介紹了如何在 Android 系統中創建自己的賬戶系統,