I can create the video page on UIViewController.
But I have some problem on reviewer team.
It is minimum functionary and concept is failer.
The code is like this.
And then I wanna know how to create the playlist pages.
Somebody, tell me how!
@interface SecondViewController (){
NSArray *item;
}
- (IBAction)button1:(UIButton *)sender;
- (IBAction)button2:(UIButton *)sender;
- (IBAction)button3:(UIButton *)sender;
- (IBAction)button4:(UIButton *)sender;
- (IBAction)button5:(UIButton *)sender;
- (IBAction)button6:(UIButton *)sender;
- (IBAction)button7:(UIButton *)sender;
- (IBAction)button8:(UIButton *)sender;
- (IBAction)button9:(UIButton *)sender;
- (IBAction)button10:(UIButton *)sender;
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UIButton *button1;
@property (weak, nonatomic) IBOutlet UIButton *button2;
@property (weak, nonatomic) IBOutlet UIButton *button3;
@property (weak, nonatomic) IBOutlet UIButton *button4;
@property (weak, nonatomic) IBOutlet UIButton *button5;
@property (weak, nonatomic) IBOutlet UINavigationBar *tab;
@property (weak, nonatomic) IBOutlet UIButton *button6;
@property (weak, nonatomic) IBOutlet UIButton *button7;
@property (weak, nonatomic) IBOutlet UIButton *button8;
@property (weak, nonatomic) IBOutlet UIButton *button9;
@property (weak, nonatomic) IBOutlet UIButton *button10;
@property (weak, nonatomic) IBOutlet UINavigationItem *title1;
@property AVPlayer *avPlayer;
@property AVPlayerViewController *controller;
@property NSURL *url;
@property (assign) NSInteger counter;
-(void)player;
-(void)itemChange;
-(void)setVideoFinishObserver;
@end
@implementation SecondViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_image.center = CGPointMake(self.view.frame.size.width/2, 122);
_button1.frame = CGRectMake(0, 248, self.view.frame.size.width, 30);
_button2.frame = CGRectMake(0, 286, self.view.frame.size.width, 30);
_button3.frame = CGRectMake(0, 324, self.view.frame.size.width, 30);
_button4.frame = CGRectMake(0, 365, self.view.frame.size.width, 30);
_button5.frame = CGRectMake(0, 403, self.view.frame.size.width, 30);
_button6.frame = CGRectMake(0, 441, self.view.frame.size.width, 30);
_button7.frame = CGRectMake(0, 479, self.view.frame.size.width, 30);
_button8.frame = CGRectMake(0, 517, self.view.frame.size.width, 30);
_button9.frame = CGRectMake(0, 555, self.view.frame.size.width, 30);
_button10.frame = CGRectMake(0, 593, self.view.frame.size.width, 30);
_tab.frame = CGRectMake(0, self.view.frame.size.height-44, self.view.frame.size.width, 44);
item = @[@"url.mp4", @"url2.mp4", @"url3.mp4", @"url5.mp4", @"url6.mp4", @"url7.mp4", @"url8.mp4", @"url9.mp4", @"url10.mp4", @"url11.mp4"];
_controller = [[AVPlayerViewController alloc]init];
}
-(void)setVideoFinishObserver{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:_controller.player.currentItem];
}
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if(object == _avPlayer&&[keyPath isEqualToString:@"item"]){
NSNumber *newValue = [change objectForKey:NSKeyValueChangeNewKey];
int intValue = newValue.intValue;
if(intValue == 0){
[item[_counter] setValue:@"paused" forKey:@"rate"];
[_avPlayer pause];
} else if(intValue > 0) {
[item[_counter] setValue:@"playing" forKey:@"rate"];
[_avPlayer play];
}
}
}
-(void)itemDidFinishPlaying:(NSNotification *)notification{
[_avPlayer removeObserver:self forKeyPath:@"item"];
_counter += 1;
_url = [NSURL URLWithString:item[_counter]];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:_url];
_avPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[self player];
}
-(void)player{
_url = [NSURL URLWithString:item[_counter]];
_avPlayer = [AVPlayer playerWithURL:_url];
_controller.player = _avPlayer;
_controller.view.frame = CGRectMake(0, 0, self.view.frame.size.width, 240);
[self addChildViewController:_controller];
[self.view addSubview:_controller.view];
[_avPlayer play];
[self itemChange];
[_avPlayer addObserver:self forKeyPath:@"item" options:(NSKeyValueObservingOptionNew) context:nil];
[self setVideoFinishObserver];
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance]setActive:YES error:nil];
[self becomeFirstResponder];
}
-(void)itemChange{
if(_counter == 0){
UIColor *bgColor =[UIColor purpleColor];
[_button1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button1.backgroundColor = bgColor;
_title1.title = @"song name1";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button1 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button1.backgroundColor = bgColor2;
}
if(_counter == 1){
UIColor *bgColor = [UIColor purpleColor];
[_button2 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button2.backgroundColor = bgColor;
_title1.title = @"song name2";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button2 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button2.backgroundColor = bgColor2;
}
if(_counter == 2){
UIColor *bgColor = [UIColor purpleColor];
[_button3 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button3.backgroundColor = bgColor;
_title1.title = @"song name3";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button3 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button3.backgroundColor = bgColor2;
}
if(_counter == 3){
UIColor *bgColor = [UIColor purpleColor];
[_button4 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button4.backgroundColor = bgColor;
_title1.title = @"song name4";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button4 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button4.backgroundColor = bgColor2;
}
if(_counter == 4){
UIColor *bgColor = [UIColor purpleColor];
[_button5 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button5.backgroundColor = bgColor;
_title1.title = @"song name5";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button5 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button5.backgroundColor = bgColor2;
}
if(_counter == 5){
UIColor *bgColor = [UIColor purpleColor];
[_button6 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button6.backgroundColor = bgColor;
_title1.title = @"song name6";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button6 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button6.backgroundColor = bgColor2;
}
if(_counter == 6){
UIColor *bgColor = [UIColor purpleColor];
[_button7 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button7.backgroundColor = bgColor;
_title1.title = @"song name7";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button7 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button7.backgroundColor = bgColor2;
}
if(_counter == 7){
UIColor *bgColor = [UIColor purpleColor];
[_button8 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button8.backgroundColor = bgColor;
_title1.title = @"song name8";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button8 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button8.backgroundColor = bgColor2;
}
if(_counter == 8){
UIColor *bgColor = [UIColor purpleColor];
[_button9 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button9.backgroundColor = bgColor;
_title1.title = @"song name9";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button9 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button9.backgroundColor = bgColor2;
}
if(_counter == 9){
UIColor *bgColor = [UIColor purpleColor];
[_button10 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
_button10.backgroundColor = bgColor;
_title1.title = @"song name10";
} else {
UIColor *bgColor2 = [UIColor blueColor];
[_button10 setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
_button10.backgroundColor = bgColor2;
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
[_avPlayer pause];
}
- (IBAction)button1:(UIButton *)sender {
_counter = 0;
[self player];
[self itemChange];
}
- (IBAction)button2:(UIButton *)sender {
_counter = 1;
[self player];
[self itemChange];
}
- (IBAction)button3:(UIButton *)sender {
_counter = 2;
[self player];
[self itemChange];
}
- (IBAction)button4:(UIButton *)sender {
_counter = 3;
[self player];
[self itemChange];
}
- (IBAction)button5:(UIButton *)sender {
_counter = 4;
[self player];
[self itemChange];
}
- (IBAction)button6:(UIButton *)sender {
_counter = 5;
[self player];
[self itemChange];
}
- (IBAction)button7:(UIButton *)sender {
_counter = 6;
[self player];
[self itemChange];
}
- (IBAction)button8:(UIButton *)sender {
_counter = 7;
[self player];
[self itemChange];
}
- (IBAction)button9:(UIButton *)sender {
_counter = 8;
[self player];
[self itemChange];
}
- (IBAction)button10:(UIButton *)sender {
_counter = 9;
[self player];
[self itemChange];
}
@end