为什么我的图库打开视频播放时长总是加上了息屏时长

这是我的源代码
@Override
protected Uri doInBackground(Void... v) {
Uri uri = null;
try {
// Uri videoTable = Uri.parse(VIDEO_BASE_URI);
uri = resolver.insert(Video.Media.EXTERNAL_CONTENT_URI, values);
Log.e(TAG, "uri1 : " + uri);
final Uri ll = uri;
// Rename the video file to the final name. This avoids other
// apps reading incomplete data. We need to do it after we are
// certain that the previous insert to MediaProvider is completed.
String finalName = values.getAsString(Video.Media.DATA);
Log.e(TAG, "时间长度: " + values.getAsString(Video.Media.DURATION));
Log.e(TAG, "values: " + values.toString());
finalFile = new File(finalName);
if (new File(path).renameTo(finalFile)) {
path = finalName;
}

			//  correctDuration 是正确的视频时长(单位:毫秒)
			long correctDuration = values.getAsLong(Video.Media.DURATION); 
			ContentValues durationValues = new ContentValues();
			durationValues.put(Video.Media.DURATION, correctDuration);
			 Log.e(TAG, "uri2 : " + uri);
			 int rowsAffected = resolver.update(uri, durationValues, null, null);
			  Log.e(TAG, "rowsAffected: " + rowsAffected);
			  
           // resolver.update(uri, values, null, null);
			Log.e(TAG,"getVideoDuration = " + getVideoDuration(mContext,uri));
			
			// 强制刷新媒体库
			MediaScannerConnection.scanFile(mContext, new String[]{finalName}, null, new MediaScannerConnection.OnScanCompletedListener() {
				@Override
				public void onScanCompleted(String path, Uri uri) {
					 Log.e(TAG, "uri3 : " + uri);
					if (listener!= null) {
					
						Log.e(TAG, "时间长度3: " +values.getAsLong(Video.Media.DURATION));
						Log.e(TAG,"getVideoDuration3 = " + getVideoDuration(mContext,uri));
						listener.onMediaSaved(uri);
					}
				}
			});
			Log.e(TAG,"getVideoDuration2 = " + getVideoDuration(mContext,uri));
        } catch (Exception e) {
            // We failed to insert into the database. This can happen if
            // the SD card is unmounted.
            Log.e(TAG, "failed to add video to media store", e);
            uri = null;
        } finally {
            Log.v(TAG, "Current video URI: " + uri);
        }
        return uri;
    }

这是这些输出的log:
2025-01-23 17:04:08.865 3083-3384 CAM_MediaSaverImpl pid-3083 E uri1 : content://media/external/video/media/20
2025-01-23 17:04:08.865 3083-3384 CAM_MediaSaverImpl pid-3083 E 时间长度: 4006
2025-01-23 17:04:08.865 3083-3384 CAM_MediaSaverImpl pid-3083 E values: _data=/storage/emulated/0/DCIM/Camera/VID_20250123_170402.mp4 _size=3306993 duration=4006 datetaken=1737623042151 _display_name=VID_20250123_170402.mp4 date_modified=1737623042 mime_type=video/mp4 width=1920 title=VID_20250123_170402 resolution=1920x1080 height=1080
2025-01-23 17:04:08.867 3083-3384 CAM_MediaSaverImpl pid-3083 E uri2 : content://media/external/video/media/20
2025-01-23 17:04:08.877 3083-3384 CAM_MediaSaverImpl pid-3083 E rowsAffected: 1
2025-01-23 17:04:08.877 3083-3384 CAM_MediaSaverImpl pid-3083 E uri4 : content://media/external/video/media/20
2025-01-23 17:04:08.891 3083-3384 CAM_MediaSaverImpl pid-3083 E durationColumnIndex = : 0
2025-01-23 17:04:08.894 3083-3384 CAM_MediaSaverImpl pid-3083 E getVideoDuration = 4006
2025-01-23 17:04:08.901 3083-3384 CAM_MediaSaverImpl pid-3083 E uri4 : content://media/external/video/media/20
2025-01-23 17:04:08.911 3083-3384 CAM_MediaSaverImpl pid-3083 E durationColumnIndex = : 0
2025-01-23 17:04:08.914 3083-3384 CAM_MediaSaverImpl pid-3083 E getVideoDuration2 = 4006
2025-01-23 17:04:09.018 3083-3096 CAM_MediaSaverImpl pid-3083 E uri3 : content://media/external/video/media/20
2025-01-23 17:04:09.018 3083-3096 CAM_MediaSaverImpl pid-3083 E true
2025-01-23 17:04:09.037 3083-3096 CAM_MediaSaverImpl pid-3083 E 成功更新时长
2025-01-23 17:04:09.037 3083-3096 CAM_MediaSaverImpl pid-3083 E 时间长度3: 4006
2025-01-23 17:04:09.037 3083-3096 CAM_MediaSaverImpl pid-3083 E uri4 : content://media/external/video/media/20
2025-01-23 17:04:09.058 3083-3096 CAM_MediaSaverImpl pid-3083 E durationColumnIndex = : 0
2025-01-23 17:04:09.066 3083-3096 CAM_MediaSaverImpl pid-3083 E getVideoDuration3 = 4006

posted @ 2025-01-23 17:14  南1  阅读(36)  评论(0)    收藏  举报