问题描述
我想用媒体播放器播放安卓动态照片。但我不想使用 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