iOS:简易的音视屏播放框架XYQPlayer

简介:
+关注继续查看

一、前缀

一直都想好好学学音视频这方面的知识,抽了几个周末参考一些资料,尝试着写了一个简易的音视频播放框架,支持音视频播放、视频截图、音乐缓存,其实吧,也就是尽可能的封装罢了,方便以后自己使用。目前只是开始,可能有些不足,后续会继续优化。可以在github上下载,地址是https://github.com/xiayuanquan/XYQPlayer,当然也请多多关注本博主夏远全

概念参考我的这篇博文:http://www.cnblogs.com/XYQ-208910/p/5662655.html 

二、框架

1、截图

2、文件

XYQAllHeader.h:所有的头文件

 View Code

XYQAudioTool.h/m:音频播放工具类,播放包括短音频和音乐

 View Code

XYQAudioToolView.h/m:音频播放界面类,显示播放音乐的界面,播放、暂停、光盘旋转

 View Code

XYQAudioToolLoader.h/m:音频下载类,缓存音乐到本地

 View Code

XYQMovieTool.h/m:视频播放工具类,直接显示播放界面、还有截屏功能

 View Code

XYQCachesManager.h/.m:缓存管理类,计算缓存大小、清除缓存

 View Code

XYQHUDView.h/m:弹框提示,包括文本提示、下载进度提示

 View Code

XYQTimeProgress.h/m:音乐播放时间进度条

 View Code

UIImage+XYQCornerRadius.h/m:对图片进行处理的类

 View Code

Source.bundle:资源包,存放图片icon

3、依赖

 

 

三、音乐播放和缓存逻辑

 

 

四、视频播放方式

 

五、音频播放test

复制代码
#import "PlayMusicViewController.h"
#import "XYQAllHeader.h"

@interface PlayMusicViewController ()
@property (strong,nonatomic)XYQAudioToolView *audioPlayerView;
@end

@implementation PlayMusicViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"清除缓存" style:UIBarButtonItemStylePlain target:self action:@selector(clearCache)];
//1、网络音乐(此处需要给出准确的url,我的这个不可以用,只是给个参考的样式)
    //[self testPlay_Local_URL_Music:@[@"http://120.25.226.186:32812/xxx/minion_02.mp3"]];
    
    //2、本地音乐
    [self testPlay_Bundle_Music:[self musicArray]];
}

//测试创建音乐播放器(播放沙盒本地音乐包括从网络音乐下载缓存)
- (void)testPlay_Local_URL_Music:(NSArray *)musicFileLinkArray{
    
    self.audioPlayerView = [XYQAudioToolView openAudioPlayerView:musicFileLinkArray  audioPlayerViewController:self];
    self.audioPlayerView.diskIsHide = YES;
}


//测试创建音乐播放器(播放bundle根目录下的音乐)
- (void)testPlay_Bundle_Music:(NSArray *)musicNameArray{
    
    self.audioPlayerView = [XYQAudioToolView openAudioPlayerView:musicNameArray  audioPlayerViewController:self];
    self.audioPlayerView.diskIsHide = YES;
}

//Bundle根目录子下所有的音乐文件名
- (NSArray *)musicArray{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Musics" ofType:@"plist"];
    NSArray *musicNameArr = [NSArray arrayWithContentsOfFile:path];
    return musicNameArr;
}

  //清除缓存

   - (void)clearCache{

    [XYQCachesManager clearFileCaches];

  }

//关闭播放器
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.audioPlayerView dismissAudioPlayerView];
}
复制代码

 

六、视频播放test

复制代码
//
//  PlayMovieViewController.m
//  XYQPlayer
//
//  Created by 夏远全 on 2017/4/9.
//  Copyright © 2017年 夏远全. All rights reserved.
//

#import "PlayMovieViewController.h"
#import "XYQAllHeader.h"

@interface PlayMovieViewController ()

@end

@implementation PlayMovieViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    //1、push视频
    [XYQMovieTool pushPlayMovieWithNetURL:@"http://120.25.226.186:32812/resources/videos/minion_02.mp4" viewController:self];
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    //2、present视频
    //[XYQMovieTool presentPlayMovieWithNetURL:@"http://120.25.226.186:32812/resources/videos/minion_02.mp4" viewController:self];
}

//关闭播放器
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [XYQMovieTool cancelPlay];
}

@end
复制代码

 

七、演示截图

 音乐:

   

 

视频:

push:             present:  

  

 

八、cocoaPods支持:

pod search 'XYQPlayer'

 

九、声明

本博文为原创,如转载请注明出处,希望对大家有所帮助~~~~

cnblogs地址:http://www.cnblogs.com/XYQ-208910/p/6685412.html

github地址:https://github.com/xiayuanquan/XYQPlayer

简书地址:http://www.jianshu.com/p/1f8f434cfcba

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/6685412.html,如需转载请自行联系原作者
相关文章
|
7天前
|
Swift iOS开发
IOS 小说阅读《覆盖翻页》效果框架 DZMCoverAnimation
IOS 小说阅读《覆盖翻页》效果框架 DZMCoverAnimation
7 0
|
3月前
|
JavaScript Android开发 iOS开发
layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能
layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能
63 0
|
JSON Android开发 iOS开发
Python | 获取iOS设备信息的轻量级框架
今天接着上一篇Python | 获取Android设备信息的轻量级框架,来讲讲如何通过Python实现一个轻量级的库来获取电脑上连接的iOS设备信
325 0
|
机器学习/深度学习 API iOS开发
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
117 0
|
存储 自然语言处理 Java
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
195 0
|
存储 JavaScript 前端开发
iOS逆向小知识: hook框架frida的安装和使用( frida Failed to spawn 的 解决方案)
iOS逆向小知识: hook框架frida的安装和使用( frida Failed to spawn 的 解决方案)
672 0
|
网络协议 Apache 数据安全/隐私保护
CocoaSPDY:Twitter推出的用于iOS和Mac OS X的SPDY框架
SPDY最初是Google设计的用于替代HTTP的试验品。虽然SPDY是一个二进制协议(无法像HTTP那样,人们可以直观读懂),但是SPDY与HTTP完全兼容。而且,颇具现实意义的是,目前正在进行中的 HTTP2.0 草稿就是基于SPDY的。
142 0
|
数据可视化 API iOS开发
EZAudio:一个 iOS 和 OSX 上的音频可视化框架
EZAudio 是一个 iOS 和 OSX 上简单易用的音频框架。 它的官方的页面在 The Official EZAudio
543 0
EZAudio:一个 iOS 和 OSX 上的音频可视化框架
|
iOS开发 开发者
iOS录屏框架ReplayKit的应用总结
iOS录屏框架ReplayKit的应用总结
671 0
|
iOS开发
iOS开发之ExternalAccessory框架的应用
iOS开发之ExternalAccessory框架的应用
311 0
热门文章
最新文章
相关产品
云迁移中心
推荐文章
更多