如何使用 MediaPlayer 播放 android 动作实时照片?

问题描述

我想用媒体播放器播放安卓动态照片。但我不想使用 mediaPlayer.setDataSource(fileDescriptor,offset,length)。因为我没有因为华为设备的 Motion Photo 得到补偿。如何获取所有设备动态照片的偏移量,或者是否可以使用 mediaPlayer.setDataSource(path,headers) 代替?我听说过一个名为“ftypmp42”的标题在这种情况下如何使用它?

解决方法

你可以参考这个, 我做了一些我可以告诉你的事情,这可能会帮助你找到偏移量并玩

    XmpUtil xmp = new XmpUtil();
    XMPMeta meta = xmp.extractOrCreateXMPMeta(jpegFile.getAbsolutePath());
    haveVideoValue = meta.getProperty("http://ns.google.com/photos/1.0/camera/","GCamera:MicroVideo");
offset=meta.getProperty("http://ns.google.com/photos/1.0/camera/","GCamera:MicroVideoOffset");

//使用媒体播放器播放视频

 FileInputStream inputStream = new FileInputStream(filePath);
                        MediaPlayer mp = new MediaPlayer();

                        mp.setDataSource(inputStream.getFD(),finalJpegFile.length() - Long.valueOf(finalOffset1),Long.valueOf(finalOffset1));
                        mp.prepare();
                        inputStream.close();
                         mp.setDisplay(surface.getHolder());
                        mp.setLooping(true);
                        mp.start();

信用:- https://medium.com/android-news/working-with-motion-photos-da0aa49b50c