目录正文开始使用封装成组件FacebookPlayer使用方式注意事项属性方法事件正文Facebook嵌入式视频播放器API是JavaScript版FacebookSDK提供的客户端功能...
目录
正文开始使用
封装成组件FacebookPlayer
使用方式
注意事项
属性
方法
事件
正文
Facebook 嵌入式视频播放器 API是 JavaScript 版 Facebook SDK 提供的客户端功能。可以在自己网站上播放Facebook视频。
开始使用
先引入 Facebook SDK
<script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>
封装成组件FacebookPlayer
<script setup>
import { onMounted, onBeforeUnmount } from "vue";
const props = defineProps({
id: { type: String, default: "" },
src: { type: String, required: true },
autoplay: { type: Boolean, default: false }
});
const emit = defineEmits(["onEnded", "onPlay", "onPause"]);
onMounted(() => {
fbAsyncInit();
loadPlayer();
});
onBeforeUnmount(() => {
removePlay();
removePaused();
removeEnded();
player = null;
});
// Load Facebook SDK for javascript
const fbAsyncInit = () => {
try {
window.FB.init({ autoLogAppEvents: true, xfbml: true, version: "v3.2" });
} catch (error) {
console.error("FB.init Error", error);
}
};
// Get Embedded Video Player API Instance
let player = null;
const loadPlayer = () => {
try {
window.FB.Event.subscribe("xfbml.ready", (msg) => {
if (msg.type === "video" && msg.id === `fb-${props.id}`) {
if (!player) player = msg.instance;
onPlay(msg.instance);
onPaused(msg.instance);
onEnded(msg.instance);
}
});
} catch (error) {
console.error("FB.Event Error", error);
}
};
// 播放器方法
const play = () => playeriydJQ && player.play();
const pause = () => player && player.pause();
// 播放器事件
let playListener;
const onPlay = (instance) => {
playListener = instance.subscribe("startedPlaying", () => emit("onPlay"));
};
const removePlay = () => {
try {
if (playListener) playListener.release("startedPlaying");
} catch (error) {}
};
let pausedListener;
const onPaused = (instance) => {
pausedListener = instance.subscribe("paused", () => emit("onPause"));
};
const removePaused = () => {
try {
if (pausedListener) pausedListener.release("paused");
} catch (error) {}
};
let endedListener;
const onEnded = (instance) => {
endedListener = instance.subscribe("finishedPlaying", () => emit("onEnded"));
};
const removeEnded = () => {
try {
if (endedListener) endedListener.release("finishedPlaying");
} catch (error) {}
};
</script>
<template>
<div
:id="'fb-' + id"
class="fb-video"
:data-href="props.src" rel="external nofollow"
:data-autoplay="props.autoplay"
:data-allowfullscreen="false"
></div>
</template>
使用方式
<facebook-player id="10153231379946729" src="https://www.facebook.com/facebook/videos/10153231379946729/"></facebook-player>
注意事项
class="fb-video" 该类名不能去掉。
如果在一个页面上使用了多个播放器,一定要传唯一id,以此识别播放器。
属性
方法
事件
以上就是vue3使用Facebook嵌入式视频播放器API方法详解的详细内容,更多关于vue3 Facebook播放器API的资料请关注我们其它相关文章!










