在 Android 中将视频背景资产和图像贴纸层发送到 instagram 的正确方法是什么?
What is the proper way to send a video background asset and an image sticker layer to instagram in Android?
我想从我的应用程序将视频分享到 Instagram,使用我的应用程序徽标作为贴纸。 I have been following this documentation,但结果是每次我尝试分享时,instagram 都会打开,显示我的视频和贴纸,它会冻结大约一秒钟,然后贴纸消失,只留下我的视频而没有贴纸可以看到,即使在发布上述视频之后。
,他们表示无法与视频分享贴纸是 android 的一个错误,但现在应该已修复。我用于贴纸的图像是 640x480,这是根据文档推荐的尺寸,所以我认为这也不是图像尺寸。我只能认为我分享错了。
这是我的代码:
Uri stickerAssetUri = Uri.parse("android.resource://" + R.class.getPackage().getName() + "/drawable/" + R.drawable.app_logo_sticker);
File media = new File(localFilePath);
Uri backgroundAssetUri = FileProvider.getUriForFile(getActivity(), getString(R.string.file_provider), media);
Intent intent = new Intent("com.instagram.share.ADD_TO_STORY");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(backgroundAssetUri, "video/mp4");
intent.putExtra("interactive_asset_uri", stickerAssetUri);
getActivity().grantUriPermission(
"com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (getActivity().getPackageManager().resolveActivity(intent, 0) != null) {
getActivity().startActivityForResult(intent, 0);
}
问题出在我用于测试的视频文件上。背景资产的最长持续时间为 20 秒,而根据 videoview,我使用的文件为 20 秒,检索视频的实际持续时间为我提供了 20333 毫秒,这超出了文档中指定的限制。我使用了一个真正符合标准的不同文件并且它有效。
我想从我的应用程序将视频分享到 Instagram,使用我的应用程序徽标作为贴纸。 I have been following this documentation,但结果是每次我尝试分享时,instagram 都会打开,显示我的视频和贴纸,它会冻结大约一秒钟,然后贴纸消失,只留下我的视频而没有贴纸可以看到,即使在发布上述视频之后。
这是我的代码:
Uri stickerAssetUri = Uri.parse("android.resource://" + R.class.getPackage().getName() + "/drawable/" + R.drawable.app_logo_sticker);
File media = new File(localFilePath);
Uri backgroundAssetUri = FileProvider.getUriForFile(getActivity(), getString(R.string.file_provider), media);
Intent intent = new Intent("com.instagram.share.ADD_TO_STORY");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(backgroundAssetUri, "video/mp4");
intent.putExtra("interactive_asset_uri", stickerAssetUri);
getActivity().grantUriPermission(
"com.instagram.android", stickerAssetUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (getActivity().getPackageManager().resolveActivity(intent, 0) != null) {
getActivity().startActivityForResult(intent, 0);
}
问题出在我用于测试的视频文件上。背景资产的最长持续时间为 20 秒,而根据 videoview,我使用的文件为 20 秒,检索视频的实际持续时间为我提供了 20333 毫秒,这超出了文档中指定的限制。我使用了一个真正符合标准的不同文件并且它有效。