首页 > 解决方案 > 在Android中将视频背景资产和图像贴纸层发送到instagram的正确方法是什么?

问题描述

我想将我的应用程序中的视频分享到 Instagram,使用我的应用程序徽标作为贴纸。我一直在关注这个文档,但结果是每次我尝试分享时,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);
        }

标签: androidfacebookandroid-intentinstagram

解决方案


问题是我用于测试的视频文件。背景资产的最大持续时间为 20 秒,而我使用的文件根据视频视图为 20 秒,检索视频的实际持续时间给了我 20333 英里,超过了文档中指定的限制。我使用了一个实际符合标准的不同文件并且它有效。


推荐阅读