• Stars
    star
    3,273
  • Rank 13,716 (Top 0.3 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WMPlayer-AVPlayer的封装,继承UIView,支持pods,手势快进、快退,全面适配全面屏,同时支持网络和本地视频的播放

功能

  • 支持cocoapods
  • 支持旋转屏:全屏模式和小屏模式切换,自动感应旋转
  • 支持网络和本地视频资源播放
  • 支持播放系统相册中的视频
  • 支持cell中播放,列表播放
  • 支持手势改变屏幕的亮度(屏幕左半边)
  • 支持手势改变音量大小(屏幕右半边)
  • 支持手势滑动快进快退、拖动Slider快进快退、点击Slider跳到点击位置播放
  • 支持直接跳到某个时间点播放
  • 支持全屏锁定🔒
  • 支持后台播放视频
  • 全面适配iPhone X
  • 支持播放器静音
  • 支持循环播放
  • 支持画中画功能PictureInPicture
  • 支持倍速播放(0.5X、1.0X、1.25X、1.5X、2X)
  • 支持列表跳转详情页播放同一个视频资源,达到无缝播放效果,类似今日头条的列表到详情页。
  • 支持动态改变播放器的填充模式

备注:有关视频缓存到本地的第三方库,请移步唱吧开源的项目https://github.com/ChangbaDevs/KTVHTTPCache

pod使用的问题总结

1、pod search WMPlayer 如果pod搜到WMPlayer版本为3.0.6,或者搜索不到,那么请更新Mac的ruby版本为2.4.x,同时更新pod版本为V1.5.3,更新的文章请参考:https://www.cnblogs.com/angelgril/p/6731015.html

2、pod 'WMPlayer'

把pod 'WMPlayer'放进你项目的Podfile里面

3、pod update

4、如果是5.0.0版本,OK,enjoy it。

5、如果不行,那么直接从GitHub上下载,用下面的命令:

pod 'WMPlayer',  :git => 'https://github.com/zhengwenming/WMPlayer.git'

image

Usage

  • 播放网络视频
    WMPlayerModel *playerModel = [WMPlayerModel new];
    playerModel.title = self.videoModel.title;
    playerModel.videoURL = [NSURL URLWithString:@"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4"];
    WMPlayer * wmPlayer = [[WMPlayer alloc]initPlayerModel:playerModel];
    [self.view addSubview:wmPlayer];
    [wmPlayer mas_makeConstraints:^(MASConstraintMaker *make) {
        make.leading.trailing.top.equalTo(self.view);
        make.height.mas_equalTo(wmPlayer.mas_width).multipliedBy(9.0/16);
    }];
    [wmPlayer play];
  • 播放本地视频
    WMPlayerModel *playerModel = [WMPlayerModel new];
    playerModel.title = self.videoModel.title;
    NSURL *URL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"4k" ofType:@"mp4"]];
    playerModel.videoURL = [NSURL URLWithString:[URL absoluteString]];
    WMPlayer * wmPlayer = [WMPlayer playerWithModel:playerModel];        
    [self.view addSubview:wmPlayer];
    [wmPlayer mas_makeConstraints:^(MASConstraintMaker *make) {
        make.leading.trailing.top.equalTo(self.view);
        make.height.mas_equalTo(wmPlayer.mas_width).multipliedBy(9.0/16);
    }];
    [wmPlayer play]; 
  • 全屏播放视频解决方案

  •   WMPlayer 同时支持持旋转 view、单独旋转状态栏、旋转ViewController

    1、旋转view    思路:顾名思义,就是讲WMPlayer旋转90°,然后设置宽高为屏幕的宽和高,先从父视图上(可能是self.view)移除,然后在屏幕旋转的通知里面add到window上,造成全屏的效果,或者说造成全屏的假象吧。    案例:网易新闻    代码:比较low,不在维护。但是这个功能是支持的,开发者自行开发,或者看老版本的代码(5.0以前的版本)。    bug:通知栏的方向不是横屏模式;键盘和UIAlertView的弹出方向还是竖屏模式。

   2、旋转ViewController    思路:真正意义上去旋转VC,然后更新视频播放器的约束。(记住项目设置里面勾选☑️其他三个屏幕方向)    案例:腾讯视频      

3、自定义转场动画
思路:present出一个全屏的VC,同时WMPlayer做动画到全屏VC上。具体可以参考demo代码
案例:爱奇艺客户端
代码:详见demo中的新浪tab对应的DetailViewController.m里面,一定要添加全屏按钮的点击事件,并添加了代码才能有全屏的效果,不然就是一个普通的Button,点击没反应的。

使用过程中有bug,请联系我,我会及时修复。谢谢大家的支持。

欢迎加入WMPlayer+WNPlayer开发交流群

加本人微信18824905363,备注WMPlayer,我会拉你入群

More Repositories

1

WeChat

实现类似微信朋友圈或者QQ空间,评论回复,九宫格布局。处理键盘弹出后定位到当前点击的被评论人处。另:滑动时候FPS在57-60之间,纵享丝滑!
Objective-C
1,629
star
2

WMDragView

WMDragView致力于让任意View都可以自由悬浮拖曳(可拖动,悬浮按钮),类似于iOS的AssistiveTouch效果,微信浮窗。
Objective-C
904
star
3

ScreenShotBack

全屏返回,截图手势返回,景深效果,类似斗鱼、天天快报、腾讯新闻等APP的手势返回。
Objective-C
448
star
4

CountDown

iOS倒计时,60s验证码倒计时,cell中倒计时,后台给的时间戳倒计时,全部适合。比如:离活动结束还有 0天 01: 14: 59
Objective-C
392
star
5

RCIM

融云SDK集成即时通讯。单聊,群聊,讨论组,自定义cell,自定义消息等,融云Demo。文章配合代码一起看,效果更佳!文章地址:https://github.com/zhengwenming/RongCloud-SDK-description
Objective-C
258
star
6

RongCloud-SDK-description

介绍融云SDK即时通讯机制和集成步骤,由于国内CSDN博客封杀带有广告性质的文章(其实不是打广告,纯粹的技术分享),所以只能在Github发表了。希望大家支持我,谢谢。Demo地址:https://github.com/zhengwenming/RCIM
194
star
7

ExpandTableView

可折叠展开的tableView,QQ好友分组列表。
Objective-C
126
star
8

swiftDemo

swift框架demo,做swift项目的时候可以参考,很多控件的使用,还用扫一扫等等(支持swift3.0)
Swift
110
star
9

CopySource

iOS项目框架问题(baseVC,baseNav、全屏返回手势、旋转屏幕、截获back返回事件、定制不同VC的返回按钮,iOS 11适配、iPhone X的适配等等)
Objective-C
92
star
10

OpenFile

打开本地或者远程的PDF,word,excel,PPT等文件。提供多种打开方法。
Objective-C
88
star
11

WMPhotoBrowser

照片浏览器,支持浏览网络URL、本地、混合(网络+本地)图片,长按保存到相册,双击放大,手势缩放图片,并且优化长图的显示。
Objective-C
65
star
12

WNPlayer

WNPlayer万能播放器,使用FFmpeg最新版本(4.0.2),没有使用FFmpeg的废弃api,支持几乎所有视频格式(avi、flv、m3u8、3gp、RTMP、RTSP、MKV、rmvb、wmv、mp4、mov),网络和本地视频同时支持;支持自定义控制层。
C
58
star
13

SliderTab

滑动导航,支持手势滑动和点击tab滑动。
Objective-C
48
star
14

WMQRCode

iOS原生扫描,同时支持二维码和条形码扫描。(赠送扫描动画,手电筒🔦功能让你夜里轻松扫描二维码)
Objective-C
31
star
15

WMBannerView

强大的广告轮播图,可设定轮播时间,可轮播本地和网络图片(可设置默认的placeholder),支持手动和自动无限循环轮播。
Objective-C
29
star
16

EZDB

项目中包含自定义tabbar,自定义导航栏,自定义alertView,无限轮播图,还有剪切圆形头像等。
Objective-C
18
star
17

BankCardID

依据银行卡号码,判断是什么银行的卡
Objective-C
18
star
18

yingke

映客直播demo,OC版本。
Objective-C
13
star
19

Chengshuo

基于swift3.0项目《城说》。请使用Xcode8来运行项目。
Swift
7
star
20

zhengwenming.github.io

主页
HTML
3
star
21

wm-dragview

可以自由拖拽的悬浮view,可配置初始化位置和可以自由拖动的范围。
Vue
3
star
22

python-pachong-demos

python写的几个简单爬虫demo项目,适合新手
Python
2
star
23

js-pachong

简单实现js爬虫的小项目
JavaScript
2
star
24

vue3-ts-vite-mobile-template

vite+ts+vue3搭建的移动端webapp的模板框架demo
Vue
1
star
25

python-automation

python结合Google浏览器实现自动化的demo
1
star