视频拍摄器收藏我的收藏
收藏
我的收藏
本文主要是通过代码示例来说明如何调起视频发布器。
主动调用
主动调用是指通过 tt.shareAppMessage 调起视频发布器,传入该方法的参数为 ShareParam 类型。
tt.shareAppMessage({ title: "my title", channel: "video", extra: { videoTopics: ["test1 videoTopics", "test2 videoTopics"], // 抖音或头条小视频话题列表 videoPath: "", withVideoId: true, }, success(res) { tt.showModal({ title: "分享成功", content: JSON.stringify(res), }); }, fail(e) { tt.showModal({ title: "分享失败", content: JSON.stringify(e), }); }, });
被动调用
被动调用是指通过 tt.onShareAppMessage 监听用户点击分享的行为,然后在回调函数中返回一个ShareParam对象。
tt.onShareAppMessage((res) => { console.log(res.channel); // 如果用户触发了视频发布器,channel值为"video" return { success: (res) => { console.log("分享视频成功"); }, }; });
被动调用时,不支持修改 ShareParam 的 channel 值。
设置视频话题
如果想在视频分享时加上一些话题,可以通过 extra
参数的 hashtag_list
字段设置:
tt.shareAppMessage({ title: "my title", channel: "video", extra: { hashtag_list: ["custom tag 1", "custom tag 2"], }, });
只有抖音拍视频支持话题设置功能。
只有抖音拍视频支持传 title。
获取视频封面图
如果将 extra
参数的 withVideoId
字段设置为 true
,可以获得 videoId
, 然后通过获取视频信息接口获取视频封面图。
tt.shareAppMessage({ extra: { withVideoId: true, }, success: (res) => { getVideoInfo(res.videoId); }, }); function getVideoInfo(id) { tt.request({ url: "https://gate.snssdk.com/developer/api/get_video_info", method: "POST", data: { alias_ids: [id], }, success: (res) => { if (res.data.data[0].video_info.cover_url) { console.log(res.data.data[0].video_info); // 包含 cover_url,还有其它字段 } else { setTimeout(() => { getVideoInfo(id); }, 5000); } }, }); }
当完成拍视频得到 videoId 后如果立即获取视频信息,因为服务端延迟一般是获取不到的,建议先将 videoId 存到服务端,稍后根据业务需要再调用接口获取视频信息;或者通过轮询的方式来获取。
视频分享成功后跳转到视频播放页
获得 videoId
后,可用于 tt.navigateToVideoView 方法,跳转到视频播放页。
tt.navigateToVideoView({ videoId: res.videoId, fail: (res) => { console.log(res); // 可根据 res.errCode 处理失败case }, });
当完成拍视频得到 videoId 后如果立即跳转播放页,因为服务端延迟一般是会失败的,建议先将 videoId 存到服务端,稍后再根据业务需要跳转播放页面。
录屏分享
可以将录屏得到的文件,进行分享。
const recorder = tt.getGameRecorderManager(); recorder.onStop((res) => { console.log(res.videoPath); tt.shareAppMessage({ title: "my title", channel: "video", extra: { videoPath: res.videoPath, //录屏后得到的文件地址 withVideoId: true, }, success(res) { tt.showModal({ title: "分享成功", content: JSON.stringify(res), }); }, fail(e) { tt.showModal({ title: "分享失败", content: JSON.stringify(e), }); }, }); }); recorder.stop();
Bug&Tip
- Tip: 分享报错 "can not be shared without clicking by user"
- Tip: 在抖音或其他 APP 中分享视频,可以在发布出去的视频中带上小游戏锚点(即左下角小游戏链接),但是需要保证当前小游戏已经发布存在线上版本,并且有在当前宿主上线,发布时选择默认发布,而非选择日常。发布完成后,可以使用其他账号(非发布视频账号)查看发布后视频,会带上锚点。因为系统策略原因,安卓和 IOS 建议分开查看。
该文档是否有帮助?