uc播放器|浅谈iOS视频播放的N种解决

最后更新 :2024-09-20 18:55:56

尼玛,这么low,还有树林,可忍还是不可忍! 幸运的是,苹果官方为我们提供了类ler,我们可以通过类ler自定义播放器的UI。 这里推荐一款国外工程师开源的基于ler的播放器。 相信男性伴侣的大部分需求都能得到完美解决。

工业时代

历史的车轮滚滚向前,永不停息,

但是 ler 自定义播放器并不完美:

ler在iOS9中被苹果抛弃; 当我们的需求需要对播放器进行深度定制时,ler就显得力不从心了。 同时需要开启录音,打开另外一个音频播放器播放背景音质。 这时,勒哭了。

鉴于 的局限性,一个新的框架应运而生——AVKit。

AVKit是建立在它之上的一个中级对象,用来解决视频播放问题。 从Guide中,我们可以看到这样一张技术栈的示意图:

截图 2016-03-22 晚上 6.45.36.png

如果有人还记得刚刚出来的 WWDC,一定会对性能印象深刻,同时播放 100 个视频没有任何延迟! 这一点在笔者的使用过程中也得到了验证,无论是本地视频还是在线在线点播,表现都异常出色。

我们先看一下AVKit的结构:

AVKit结构.png

因为这篇文章只是作为“导购”,但是AVKit相关的文章和文档实在是太多了,我就不再介绍了。 下面是几个基于AVKit的第三方视频框架:

后工业时代

然而uc播放器,凡事总有一个但是,AVKit也不是完美的。 当我们需要播放一些特殊尺寸的视频(如RMVB)时,AVKit只能望而却步。

相信 Mac 用户对 VLC 播放器非常熟悉,它在 Mac 上的表现非常出色,并且几乎支持所有格式(太酷了!)。 没错,就是它的创造者——开源了一个强大的视频播放框架!

我们来看看它支持的格式:

.rmvb.asf.avi.px.dv.flv.gxf.m1v.m2v.m2ts.m4v.mkv.mov.mp2.mp4.mpeg.mpeg1.mpeg2.mpeg4.mpg.mts.mxf.ogg.ogm.ps .ts.vob.wmv.a52.aac.ac3.dts.flac.m4a.m4p.mka.mod.mp1.mp2.mp3*.ogg。

你兴奋吗? 那么让我们开始吧!

1.框架编译

在之前,我们总要先有它的库吧? 官方给的很详细,中文不好吗? FQ网速不好? 没关系! 这里是编译好的VLC框架,下载即可!

静态库下载链接

<img style='max-height:500px;max-width:80%;margin: 10px auto' src='https://static.vogel.com.cn/js/ckeditor/4.5.11/plugins/video/images/videoplayer.png?id=5833&t=G87E' alt='uc云播放_uc缓存m3u8播放不了_uc播放器' />

2.项目编译

静态库很大,解压后差不多600+MB,编译后才几M,放心使用吧。

并添加下载完成;

添加依赖框架,依赖于以下框架:

截图 2016-03-22 AM 8.11.05.png

更改编译选项,因为框架底层是用C++编译的,所以我们需要修改相关的编译选项;

-7E7A-422F-BF69-.png

更改路径,否则项目找不到框架;

-D803-4376-A698-.png

PS:“std::::Init::~Init()”,来自

如果出现这样的编译问题,需要添加++.dylib和++.6.dylib(6.1用的,然后默认编译即可)

好的! 如果你感到惊讶,CMD+B 编译成功!

为了入门uc播放器,我根据写的介绍自己的播放器:本来只是想做一个Demo,想做成一个框架。 现在还有很多功能没有建立起来,做个Demo应该够用了。

.gif

信息时代

其实,如果你了解一些更专业的视频解码知识,你也可以使用and,这样你就可以在更底层学习视频相关的技术。 其实现在博主也在学习这方面的知识,这里也只是推荐给大家。 顺便悄悄说一下,虽然也是基于二次开发。

石器时代杂项

无论技术多么强大和深奥,最终目的都是为人服务。 人类从石器时代进化到现在,手中的工具也换了一个又一个。 一味地炫技是没有意义的。 正确的方法是选择适合自己的工具。 相信在本文的信息时代之前,90%以上的需求都可以得到解决,选择权在你手中。 好了,不说了,我去把身后的雌猿打晕拖进洞里,最后见~

总结:

这篇文章主要介绍了从类ler到AVKit以及VLC框架的发展历程,展示了视频播放技术的进步。从最初的ler自定义播放器到AVKit框架,再到VLC框架,每一步都体现了技术的迭代与优化。ler虽然提供了一定的灵活性,但在iOS9后被苹果放弃,对于深度定制需求显得力不从心。随后,AVKit的出现解决了视频播放的问题,其强大的性能在测试中表现优异。然而,AVKit并非万能,面对特定格式的视频时,仍需其他解决方案。VLC框架的引入为开发者提供了更广泛的视频格式支持,几乎可以播放所有常见的视频格式。文章还分享了VLC框架的编译和项目整合过程,让读者了解如何将其应用到实际项目中。

常见问题清单及答案:

1. 如何自定义播放器的UI?

答:通过类ler可以自定义播放器的UI,它为开发者提供了更多的控制和灵活性。

2. ler自定义播放器有哪些局限性?

答:ler在iOS9中被苹果抛弃,且当需求涉及深度定制时,ler显得力不从心。

3. AVKit框架的主要优势是什么?

答:AVKit框架解决了视频播放问题,尤其在多视频播放方面表现出色,无论是本地视频还是在线点播,都有良好的表现。

4. AVKit是否适用于所有视频格式?

答:AVKit不是万能的,对于一些特殊尺寸或特定格式的视频(如RMVB),可能无法支持。

5. VLC框架支持哪些视频格式?

答:VLC框架几乎支持所有常见的视频格式,包括但不限于.rmvb、.asf、.avi等。

6. 如何获取VLC框架的库?

答:VLC框架的库可以从官方或其他可靠渠道获取,编译后的静态库大小约为600MB,编译后仅几MB。

7. 编译VLC框架需要哪些步骤?

答:首先下载VLC框架的静态库,然后在项目中添加依赖,并更改编译选项以适应C++代码。此外,还需要设置路径以确保项目能够找到框架。

8. 编译VLC框架时遇到编译问题怎么办?

答:如果遇到编译问题,可以尝试添加++.dylib和++.6.dylib文件,这是针对特定版本的解决方法。

9. 如何使用VLC框架创建自己的播放器?

答:可以根据个人需求,参考VLC框架的使用方式,构建自己的播放器。初始阶段可以先做Demo,逐步增加所需的功能。

10. 技术发展的目的是什么?

答:技术发展的最终目标是为人服务,提高生活质量。选择合适的工具和技术,可以让工作更加高效,满足不同的需求。

- END -