1

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

4

1 回答 1

0

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

    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

于 2021-06-30T05:57:39.503 回答