当前位置:网站首页>网页内嵌B站视频,隐藏相关控件
网页内嵌B站视频,隐藏相关控件
2022-07-24 05:18:00 【XIE392】
网页内嵌 B 站视频主要是用 ifame , 其地址是:
https://player.bilibili.com/player.html?cid=&aid=84267566&page=1&as_wide=1&high_quality=1&danmaku=0
后面的参数说明:
| key | 属性 |
|---|---|
| cid | 应该是客户端iid,可以不填 |
| aid | 视频id,必填 |
| page | B站视频, 选集里的, 第几个视频 (默认值为1) |
| as_wide | 是否宽屏 1: 宽屏, 0: 小屏 |
| high_quality | 是否高清 |
| danmaku | 是否开启弹幕 1: 开启(默认), 0: 关闭 |
其中 aid 为必填,其它参数可以不填
这个 aid 怎么获取呢?这就需要请求 B 站这个接口了
https://api.bilibili.com/x/web-interface/view?bvid=BV1gY4y1E7h8
1、aid获取
bvid怎么获取?在 B站播放视频中的 url 里我们可以看到

如果网页上传 链接提取的话就需要先去访问上面的地址获取视频 aid

我们可以叫后端去访问,前端提供 bvid,后端去请求 B 站获取 aid 的地址,根据所得内容返回给前端
2、封装
这里以 vue 为例:
<template>
<div class="iframe-box">
<div class="vedio">
<iframe class="vedio-iframe" :src="src" frameborder="no" scrolling="no" danmaku="0" allowfullscreen="true" id="iframe" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts" ></iframe>
</div>
</div>
</template>
ifame参数说明:
| key | 属性 |
|---|---|
| allowfullscreen | 设置true为时,可以通过调用的requestFullscreen()方法激活全屏模式 |
| scrolling | 这个属性控制是否要在框架内滚动显示 auto: 当框架的内容超出范围时显示的滚动条。yes: 实时显示滚动条。no: 从不显示滚动条。 |
| frameborder | 此属性1值时显示,此框架的默认0使用屏幕 |
| … | … |
这里就不在多详述了,可以参考这个 iframe
js部分代码:
<script setup lang="ts" name="iframe">
import ( ref ) from "vue";
const props = defineProps({
cid: {
type: String,
default: "",
},
aid: {
type: String,
default: "",
},
page: {
type: String,
default: "1",
},
as_wide: {
type: String,
default: "1",
},
high_quality: {
type: String,
default: "1",
},
danmaku: {
type: String,
default: "0",
},
})
const {
cid, aid, page, as_wide, high_quality, danmaku } = props;
const baseURL = "https://player.bilibili.com/player.html?";
const src = ref<String>(`${
baseURL}cid=${
cid}&aid=${
aid}&page=${
page}&as_wide=${
as_wide}&high_quality=${
high_quality}&danmaku=${
danmaku}`);
</script>
css部分代码:
<style lang="scss" scoped> .iframe-box {
width: 100%;
height: 100vh;
overflow: hidden;
}
.vedio {
width: 100%;
// 因为要隐藏下面的提示,所有多加 40px, 如果要隐藏控件就多加 30px
height: calc(100vh + 40px);
min-height: 300px;
position: relative;
padding: 0;
overflow: hidden;
margin: 0;
box-sizing: border-box;
.vedio-iframe {
width: 100%;
height: 100%;
border: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
}
</style>
最终结果:

原本不去除下边的样子 :

目前只知道怎么隐藏下面,其它的暂时不懂,因为获取不到 iframe 中的元素,无法修改其样式
边栏推荐
猜你喜欢
随机推荐
函数多种类型
登录 页面 + 总结心得
Promise_ Async and await
按钮 渐变
libc.so.6/glibc交叉编译
key的作用是什么
OPENGL在屏幕上绘制2个点,右边一个蓝色的点,采用反走样技术,左边一个红色的点,不采用反走样技术。比较两个点的区别。
[DP] number triangle
grid布局
Keywords_ 01return
Opengl模拟现实生活中,球掉到地面上再弹起来的过程,在屏幕上绘制一个球,球从上往下掉,碰到地面,再弹起来。
字符串_方法_01match方法
02-移动端页面适配
还原ui设计稿
C文件读写加链表增删改查
Geoserver自动化上传Shapefile
T 11-20
special effects - 蜘蛛网背景特效
Variables and constants in C language
Summary of data types









