您的位置:首页 > 移动开发 > IOS开发

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

2017-04-09 16:49 183 查看
一、前缀

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

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

二、框架

1、截图

//
//  UIImage+XYQCornerRadius.h
//  XYQPlayer
//
//  Created by 夏远全 on 2017/3/8.
//  Copyright © 2017年 夏远全. All rights reserved.
//

#import <UIKit/UIKit.h>

/**************************************************************************************************
切割圆角图片、旋转动画
***************************************************************************************************/

@interface UIImage (XYQCornerRadius)

/**
圆角图片

@param image 原始图片
@param size  尺寸
@param r     半径
*/
+ (UIImage *)createRoundedRectImage:(UIImage*)image size:(CGSize)size radius:(NSInteger)r;

/**
开始旋转
@param rotationView 旋转视图
*/
+ (void)startRotation:(UIImageView *)rotationView;

/**
暂停动画
@param layer 旋转视图layer
*/
+ (void)pauseAnimation:(CALayer *)layer;

@end


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

[b]github地址:https://github.com/xiayuanquan/XYQPlayer
[/b]

[b]简书地址:http://www.jianshu.com/p/1f8f434cfcba[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: