android加载优酷视频播放器,使用android优酷视频云一些问题

article/2025/9/18 12:10:14

最近项目迭代需要添加视频播放功能,由于若干原因就选择了优酷视频,本来挺简单的一个功能在做的时候居然碰到了若干意想不到的问题,果然还是优酷视频提供的demo最稳定啊,啥问题木有~~o(>_

好了,闲话不多说,就聊聊我在项目中使用优酷视频云时遇到的问题吧!

1、viewpager+fragment结构,在卡片中播放视频,当时做的时候想都没想就靠惯性在每个item中放了一枚mYoukuPlayerView,然后就碰到了复用问题,优酷视频的生命周期就得不到保障了,于是就想到了动态添加,当卡片中有视频时把mYoukuPlayerView动态添加进item中,这样一来整个fragment就有且只有一个播放面板了,O(∩_∩)O

141ddf081e67

实现方式很简单,在item中放一个空的LinearLayout,背景设置为黑色,child设置居中, 当用户点击播放按钮时再动态添加进这个空的布局当中,然后把空的LinearLayout设置为可见,这时就能妥妥的播放视频啦!

2、卡片左右切换视频停不下来有木有!我们知道viewpager默认加载3张,通过设置setOffscreenPageLimit(1)来限制默认加载的条数,但是这样还是不行啊有木有,于是就read the fucking source code

141ddf081e67

141ddf081e67

绝望了,本来想设置为0,结果不起作用,于是就想到了重写viewpager,把默认值改为0,然后也这样做了,结果每滑动一下都要时间加载,没有了流畅度的viewpager绝不能忍,于是乎想到了以下方法:

1)添加滑动监听addOnPageChangeListener(this);

2)在onPageSelected中判断视频是否正在播放, 通过添加播放器回调得到当前视频的播放状态

141ddf081e67

有了它就能知道是否有视频在播放了

141ddf081e67

通过调用release()方法把视频给释放掉,but,切换回来后黑了有木有,这是因为没有把添加播放器的linearlayout给move掉

141ddf081e67

然后adapter调用此方法就大功告成啦!

3、播放广告切换卡片视频停不下来

这个问题着实让我头疼了一段时间,后来从头到尾翻看了优酷视频的源码,终于让我找到了解决办法,通过调用mYoukuPlayer获得mMediaPlayerDelegate, 然后调用isADShowing,值为true or false来判断视频是否正在播放广告。

4、如何刷新单个的item

这个问题让人很头疼,默认一张卡片的左右两边随着卡片的加载而默认加载,到卡片的左边或右边的第二张时(因为设置了offset为0)才会刷新adapter,解决办法来了

141ddf081e67

在fragment中onpageSelected方法中监听position,在adapter中通过设置的tag获取currentPage,如果等于当前的position,返回POSITION_NONE,这是adapter就会刷新item了!

好了,以上就是大致碰到的问题了,一些小问题想不起来就不一一描述了,希望能给正在用优酷视频或将要用优酷视频的小伙伴给予帮助,不是打广告,不是打广告,不是打广告,重要的事情一定要说三遍!


http://chatgpt.dhexx.cn/article/Taxl8PTB.shtml

相关文章

html调用优酷视频播放,优酷网视频播放器站外调用详解

优酷网视频播放器站外调用详解 蓝叶 网站设计 2011-03-21 14201 5评论 自从蓝叶准备做视频盒,就一直在研究各个视频站播放器调用代码,只要搞明白了 代码我都共享出来了,这次说说优酷网播放器的站外调用方法。优酷网默认获取的 站…

mac os x 设置终端快捷键

大家都知道在linux下可以用ctraltt组合快捷来打开终端,那么在OS X上可以吗?答案是肯定的,其实OS X上很多功能都可以通过Apple自家的Automator.app创建,且使用此方法可以为任何程序创建快捷键。 废话少说,下面给大家演…

Mac - 当前位置打开终端

1、点击屏幕顶部的“Finder”弹出下拉菜单。 2、点击“服务”菜单项弹出子菜单,点击子菜单中的“服务偏好设置” 3、点击弹出的服务偏好设置窗口中的“服务”并勾选“新建位于文件夹位置的终端窗口”;点击该项还可以为该操作设置快捷键。 4、关闭设置窗口…

Mac自己创建打开终端快捷键(任意软件)

这里就以为“终端”程序设置一个快捷启动键。 1、打开自带的Automator(可以用右上角Spotlight搜索找到) 2、在创建界面选择“服务” 3、如图:左侧列表中,找到:操作——资源库——实用工具——开启应用程序 右侧…

Xcode终端快捷键

Xcode 直接打开终端 Xcode作为开发编辑器,居然不能直接打开终端,所以就没有快捷键,但是可以借助自定义 Behavior 来执行脚本,这样就有快捷键了,比如我的CMD Shift T。 1. 准备打开终端的脚本 首先编辑 shell 脚本…

MAC 终端快捷键实用

首先需要打开终端,这个基本都会用的吧。 在Dock里面打开Launchpad(也可快捷键F3),找到终端的图标,点击打开就OK了。 现在准备工作已经做完,我们就来进行实地操作吧。 commandN:打开多个终端窗口…

mac 打开多个终端快捷键

使用快捷键:comman t 即可创建多个

vscode打开终端的快捷键是啥? VScode打开终端的三种方法

方法1:打开终端的快捷方法 打开VScode后,鼠标左键单击窗口顶部的【帮助】(如下图红圈标注), 在下拉列表中找到【键盘快捷方式参考】(如下图红框标注) 鼠标左键点击【键盘快捷方式参考】&#xf…

【MAC】M1 mba两分钟用automator设置打开终端快捷键

目录 一、前言二、用自动操作.app写快捷脚本2.1 打开自动操作2.2 新建2.3 运行AppleScript2.4 编写脚本2.5 保存2.6 设置快捷键 三、讨论 一、前言 以前用linux习惯ctrlaltt快捷启动终端,转mac其实也有快捷键,需要自行设置。本文章以m1 mba的monterey为…

Mac 快速打开终端快捷键

Mac下没有打开终端的快捷键,需要自己设置 主要是利用Mac的Automator来创建打开终端的服务,并设置快捷键。直接看图说话 找到Automator,创建打开终端的服务 编写打开终端的命令,其中的”Terminal”改成其他的应用名就能打开其他应用了 保存…

MacBook设置快捷键打开终端Terminal

点左上角苹果图标 系统偏好设置->服务->服务偏好设置 然后找到Terminal,添加快捷键即可

MAC-快捷键打开终端

MAC-快捷键打开终端 文章目录 MAC-快捷键打开终端目标步骤感谢 目标 通过快捷键 Cmd Opt T 快速打开 MAC 默认终端。 步骤 快捷键 Cmd 空格 打开 Spotlight。搜索框键入 automator,打开自动操作。(或是:打开启动台 -> 其他 -> 自…

Linux 挂载4T硬盘到根目录

参考:https://blog.csdn.net/qq_39450259/article/details/115518524 https://blog.csdn.net/jiabinzhang4310/article/details/100183731 1. 格式化4T硬盘 # fdisk -lDisk /dev/sdb: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors Units sectors of 1 * …

Linux-挂载硬盘

Linux与Windows有很大不同,Linux是一个文件操作系统,一切皆文件。 在windows下如果我们对硬盘进行分区,系统会帮我们分配盘符,比如C、D、E...等等,我们双击盘符就可以使用,但是在Linux下,我们有…

树莓派Linux挂载硬盘提示只读问题解决

树莓派Linux挂载硬盘提示只读问题解决 一、解决过程 树莓派挂载硬盘做nas,一段时间后硬盘突然变为只读,无法写入新文件 一、解决过程 1.卸载硬盘 sudo umount /dev/sda2参数:-a, --all unmount all filesystems-A, --all-tar…

linux挂载新硬盘

前言:服务器新加了1TB硬盘 现在需要把硬盘挂载到centos 里。 1、首先用fdisk -l 发现待分区的磁盘 /dev/sdc fdisk -l 2、fdisk /dev/sdc 对该磁盘进行分区 fdisk /dev/sdc 3、再次使用fdisk -l查看分区的结果 如图分的新区为/dev/sdc1,,创建的新区格式…

linux合并挂载空间,linux 挂载硬盘 合并到系统盘

我们平时买vps或者服务器后,连上ssh发现硬盘的容量和商家所介绍的不一样,这种一般情况都是没挂载硬盘,不一般的情况就是真的和商家所介绍的不一样,这种情况你需要联系商家询问。下面说说怎么挂载硬盘,并合并到系统盘吧…

linux挂载硬盘操作步骤

lsblk 查看硬盘分区 1、fdisk -l 查看硬盘情况 2、fdisk /dev/vdb 硬盘分区(按照下图操作) n:表示建立新的分区 p:表示主分区 e:表示拓展分区 1:分区号,输入1表示只分一个区 w:保存…

Linux 挂载mount

挂载概述 在linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。 其实挂载可以理解为windows当中的分配盘符,只不过windows当中是以英文字母ABCD等作为盘符,而linux是拿系统目录作为盘符,当然linux当中也…

SPI总线(四种工作模式)

1.SPI总线简介 SPI(serial peripheral interface,串行外围设备接口)总线技术是Motorola公司推出的一种同步串行接口。它用于CPU与各种外围器件进行全双工、同步串行通讯。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线…