• 前几天和小朋友一起在b站上看电影,觉得这个一起看的功能很不错。不过只能在手机端使用,而且有很多影片看不了,所以就想着能不能自己做一个可以同时看电影的功能。

实现思路

  • 学校内网有一个视频网站,包含了大量的资源。并且它请求资源的方式是直接利用video的src属性发送的GET请求,只要接入了校园网,可以很方便的进行拦截。
  • 基本的功能就是可以用一个网页控制其他网页的视频播放情况,从网络上查了一些资料之后发现可以使用WebSocket实现。
  • WebSocket是一种网络协议,建立在TCP的基础之上,通过HTTP/1.1协议的101状态码进行握手。它的特点就是可以进行全双工通信,不必再以轮询的方式来查看数据是否更新,和发布订阅者模式有点像。
  • 那么一起看功能的实现就是拦截对视频的操作,将暂停、跳转等动作发生拦截下来,并且向服务器发送相应的通知,服务器接收到数据,进行判断之后,再将进行的动作通知到每个连接到服务器的客户端,从而实现同步的暂停、播放、跳转等功能。

代码

  • 有了思路以后代码就很简单,和聊天室的实现差不多代码地址

问题

  • 报错:Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.
    在用户没有和DOM进行交互的时候调用video.play()等方法的时候就会出现这种错误,我的解决方法是打开页面时会弹出窗口,引导用户进行点击操作。

总结

  • 其它网站的视频大多都有同源限制,并且都以视频流的方式分割加载,不是很好获取。
  • 这个功能做出来之后才和小朋友看了一集电视剧,她就实习去了,连不上校园网也没得看了,遗憾。。。
  • 优化体验要重写播放器组件,可以更方便的跳转视频。用自己的DOM覆盖在vidoe上,监听点击拖拽等操作,不过有点麻烦。也可以加入房间号,分发动作的时候只对相应的房间进行分发。不过对服务器压力可能有点大,而且我也只是和小朋友看一下,私人定制hhhh
  • 我的博客:https://doumjun.github.io/vuepress.blog/

如何和异地的朋友一起看电影相关推荐

  1. 使用 SyncPlay 和异地朋友一起看电影

    近日疫情致令本州下了居家令.不过在居家令之前,本也不敢出门了.线下社交完全停滞,就和朋友们约着在线上一起做些事情.比如线上的 movie night.今晚成功举行了第一次,大家聊得很开心.这里是一份实 ...

  2. 实现和(女)朋友一起看电影 Java websocket

    被异地(女)朋友缠着要一起看电影, 翻遍许多资源并没有发现比较好的, 索性自己写一个, 思路 一起看电影要的效果是:1. 同时间俩人看到的画面相同2. 一方点暂停(播放), 一方也暂停(播放)3. 一 ...

  3. 电影垂直社交观影和亲友们在家一起看电影吧

    终于抽出时间,想和最亲近的人一起看场电影,Ta却在千里之外,聚不到一起-- 电影是我们生活中不可缺少的文化大餐,但在工作和生活节奏越来越快的今天,和亲友一起看场电影,变成了一种奢侈品. 不过,随着移动 ...

  4. 如何解决和异地女朋友一起看电影的需求?(内附源码)

    一.这是一件悲伤的故事 我是一名程序员,我和我的女友是异地恋,so sad!!! 一次视频时,她突然来了一句:"我们已经很久没有一起看电影了吧......" "呃...好 ...

  5. 保益悦听怎么开盲人模式_盲人看电影???是的!盲人看电影!!!

    太!异!想!天!开!了!是谁提出的这个想法,竟然想组织盲人看电影这不是拿刀戳心窝子嘛! 但是!这异想天开的事情竟让一位年近七旬的盲人蒋鸿源办成了!还获得了大批"同盲中人"的夸奖,甚 ...

  6. Soul—分享电影瞬间,找到与你一起看电影的人

    "如果我能找到野柚子,你就帮我实现一个愿望." "我把那个可以让房子旋转起来的咒语,深深地记在了心里面." 在戛纳国际电影节获得一种关注大奖提名的<地球最 ...

  7. access select max_从峰米4k激光家庭影院Max开始,爱上看电影

    原标题:从峰米4k激光家庭影院Max开始,爱上看电影 从峰米4k激光家庭影院Max开始,爱上看电影 2020-11-04 22:56:002点赞0收藏0评论 9月21日-10月21日,参与#投影超级大 ...

  8. 笔记本应用电视机屏幕看电影

    今天想组织家人一块练瑜伽,笔记本电脑的屏幕显得很小,就琢磨利用电视的大屏幕. 说明:我家的电视不新了,是数字的,不是液晶的,只能通过VGA接口与笔记本相连:我的笔记本上是WIN7系统(XP操作顺序也一 ...

  9. 女神在我玩王者的时候约我看电影,可我又不能挂机坑队友。那就只能写一个帮我打王者荣耀的AI了

    大家好,这里是为代码封神的封神榜(有点吹牛皮了,哈哈).还是新人初来乍到,希望大家多多指教. ------------------ 不知道兄弟们有没有遇到这样的情况,当你正在玩王者的时候,战局焦灼.结 ...

最新文章

  1. 彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
  2. 使用PowerShell 监控运行时间和连接情况
  3. UEStudio使用入门
  4. Python day 9(6) 调试
  5. 劳动合同中不写薪资?
  6. 训练日志 2019.1.14
  7. 计算机的指令合成为,第二章计算机操作基础知识doc
  8. 08-04 性能测试--复杂情景设计
  9. linux下文件时间戳
  10. 特斯拉电池检测_特斯拉风格的割草机,也是采用电池供电
  11. 谈谈如何优化MYSQL数据库查询
  12. 机器学习笔记(二十六):支撑向量机(SVM)
  13. 2.5 VB编程基础--运算符和表达式
  14. JVM内存模型和结构
  15. Hive窗口函数保姆级教程
  16. 自建同步云盘服务器,自建云盘系列——Syncthing (BT Sync的开源替代)
  17. Android 蓝牙开发 BLE(低功耗) 摩拜单车共享汽车开门实例
  18. Xcode生成IPA包
  19. Ubuntu更改密码及hostname步骤
  20. 古典密码----仿射密码加解密

热门文章

  1. 怎么修改原图片的尺寸?图片尺寸在线修改工具分享
  2. 因果图,鱼骨图,石川图
  3. get.(Calendar.HOUR_OF_DAY)、get(Calendar.HOUR)的区别
  4. freebsd linux双系统,多系统安装实践(Window /FreeBSD/Linux) (转)
  5. 加减乘除计算机英语,加减乘除英文
  6. 满帮Q4营收14.3亿元:履约订单数增长41.6%,上线货主信用体系规范服务
  7. 各编程语言 + aardio 相互调用示例(简易代码)
  8. Linux学习手册(命令大全)
  9. 小陈-Devexpress gridcontrol行内增删改操作
  10. 马云为什么要卸任软银董事?开放和全球化的技术时代会终结吗