Android MediaMetadataRetriever.METADATA_KEY_DATE 仅提供 galaxy S7 视频的日期

Android MediaMetadataRetriever.METADATA_KEY_DATE gives only date of video on galaxy S7

我正在编写代码以从元数据中获取视频创建日期和时间,我正在使用以下代码获取创建日期

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(path_to_video);
String date = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE);

它在除 Samsung Galaxy S7 之外的所有设备上都能完美运行,它 returns 只有 "YYYY MM DD" 格式的日期,没有时间戳我需要日期和时间戳。

非常感谢这方面的任何帮助。

对于打印视频的元数据信息,FFMPEG 是最好的选择,

ffmpeg -i input_video -f ffmetadata metadata.txt

此命令帮助我获取所需信息。

我遇到了类似的问题。我按如下方式处理了两种日期格式:

//pass date fetched from MetadataRetriever class to below method.

    public static String formatMediaDate(String date){
            String formattedDate = "";
            try {
                Date inputDate = new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.getDefault()).parse(date);
                formattedDate = new SimpleDateFormat("dd MMMM yyyy", Locale.getDefault()).format(inputDate);
            }
            catch (Exception e){
                Log.w(TAG, "error parsing date: ", e);
                try {
                    Date inputDate = new SimpleDateFormat("yyyy MM dd", Locale.getDefault()).parse(date);
                    formattedDate = new SimpleDateFormat("dd MMMM yyyy", Locale.getDefault()).format(inputDate);
                } catch (Exception ex) {
                    Log.e(TAG, "error parsing date: ", ex);
                }
            }
            return formattedDate;
        }