我想用媒体播放器播放android动态照片。但是我不想使用mediaPlayer.setDataSource(fileDescriptor,offset,length)。因为我没有得到华为设备的动态照片的补偿。如何获取所有设备动态照片的偏移量,或者是否可以使用mediaPlayer.setDataSource(路径、标题)?我听说过一个名为“ftypmp42”的标题。在这种情况下如何使用它?
发布于 2021-06-30 13:57:40
你可以参考这个,我已经做了一些事情,我可以告诉你,这可能会帮助你找到偏移量并播放
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
https://stackoverflow.com/questions/66733658
复制相似问题