您当前的位置:首页 > 影视动画 > AE
| maya | 3DSmax | AE | 会声会影 | Premiere | C4D |

自学教程:引用bilibili视频

51自学网 2021-05-10 20:29:05
  AE
这篇教程引用bilibili视频写得很实用,希望能帮到您。
接入B站iframe视频(bilibili引用视频)
 B站自动放大 iframe Universal Links B站视频清晰度 BiliBili

B站链接参数
已解决的坑
按比例播放视频
阻止跳转到B站
解决iOS上自动跳转到B站APP (Universal Links)
iOS 播放自动放大问题
待填的坑
一些其他事项
各位参考(大佬)网站
前言
因为公司要搞一些视频给客户看, 然后对比了各种视频网站, 各种广告什么的, 体验都不好.
选来选去, 还是B站(BiliBili)好, 而且自己又是B站大会员用户 ( 其实在我心里早就内定了 ✧(≖ ◡ ≖) )

这里总结一下碰到的一些坑吧

B站链接参数
https://player.bilibili.com/player.html?cid=57016129&aid=57016129&bvid=BV1Ex411d7VY&page=1&as_wide=1&high_quality=1&danmaku=0&t=30

key    说明
cid    chat id,每个chat id对应一组弹幕池和
如填了 aid, 这个字段不填也没关系
aid    article id, 视频的av号
就是B站的 avxxxx 后面的数字
bvid    bilibili video id, 视频的bv号
2020.03 时候, B站把 AV 号根据一定的算法转成这个了
如果填了 bvid, 那么 aid 不填也可以
page    第几个视频, 起始下标为 1 (默认值也是为1)
就是B站视频, 选集里的, 第几个视频
as_wide    是否宽屏
1: 宽屏, 0: 小屏
high_quality    是否高清
1: 高清, 0: 最低视频质量(默认)
如视频有 360p 720p 1080p 三种, 默认或者 high_quality=0 是最低 360p
high_quality=1 是最高1080p
danmaku    是否开启弹幕
1: 开启(默认), 0: 关闭
t    打开时, 自动跳转到某个时间, 并且自动播放(单位秒)
比如 t=60, 那么自动跳转到1分钟, 且自动播放
已解决的坑
按比例播放视频
按比例播放视频

<!DOCTYPE HTML>
<html>
    
    <head>

    <style type="text/css">
        .aspect-ratio {
            position: relative;
            width: 100%;
            height: 0;
            padding-bottom: 75%;
        }
    
    .aspect-ratio iframe {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
    }
    </style>
    
        
    </head>
    
    <body>
        
        <h1> test </h1>
        
        <div class="aspect-ratio" >
            <iframe src="https://player.bilibili.com/player.html?aid=56850347&cid=99299213&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
        </div>
        
    </body>
</html>

阻止跳转到B站
在网页上, 用户选择清晰度, 或者点击视频上面的一些图标, 会跳转到B站. 这个可通过设置 iframe 的 sandbox 属性去禁止
sandbox=“allow-top-navigation allow-same-origin allow-forms allow-scripts”

<iframe src="https://player.bilibili.com/player.html?cid=99269782&aid=56824180&page=1&as_wide=1&high_quality=1&danmaku=0"
             allowfullscreen="allowfullscreen" width="100%" height="500" scrolling="no" frameborder="0" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"></iframe>
1
2
注意, 如果单单设置了 sandbox , 却没有传参 high_quality 字段为 1, 那么用户是切换不了视频质量的.
就是用户只能在 360p, 而点击了 720p 或者 1080p 都无效

解决iOS上自动跳转到B站APP (Universal Links)
因为需求, 还要可能访问到B站, 但是又不想跳出, 这又牵扯到 Universal Links 的问题 ( 自动跳转是因为 Universal Links ).

虽然系统没有公开给我们选项, 但通过直接强加就可以了 (下面是 WKWebView 的代理 WKNavigationDelegate 方法)

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    decisionHandler(WKNavigationActionPolicyAllow);
}
1
2
3
//当前设备系统版本号
#define SYSTEMVersion [[[UIDevice currentDevice] systemVersion] floatValue]
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    if(SYSTEMVersion < 9.0f) {
        // iOS 9 还没有
        decisionHandler(WKNavigationActionPolicyAllow);
    }else{
        // 返回+2的枚举值, 意思允许链接跳转, 但是类似这种 Universal Links, 就不会去瞎跳到什么APP
        decisionHandler(WKNavigationActionPolicyAllow + 2);
    }
}

iOS 播放自动放大问题
这个是 webView 默认配置问题, 改一下默认配置就好

WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
// 允许不全屏播放
configuration.allowsInlineMediaPlayback = YES;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
1
2
3
4
不过允许不全屏…那也跟着有另一个问题了, 就是如何把它放大???
主要目前又没解决监听他的放大按钮问题, 那这样的话, 就无法放大了…

待填的坑
如何监听 iframe 里面的事件这些
如何隐藏 iframe 里面某些元素
一些其他事项
默认 480p,是未登录问题
没有播放的控制条,可以尝试改变一下视频大小
各位参考(大佬)网站
按比例播放视频

视频清晰度问题(评论里面找的)

解决自动跳转到B站APP

有帮到您的,就赞一个吧,编写不易!
 
返回列表
返回列表
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1