VC.h
#import <UIKit/UIKit.h>
//#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController
@property (nonatomic,strong) NSString *audioURL_String;
@property AVPlayer *player;
- (IBAction)playBtnPressed:(id)sender;
@property (weak, nonatomic) IBOutlet UISlider *progressSlider;
@property (weak, nonatomic) IBOutlet UILabel *progessLbl;
- (IBAction)slide:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *songDurationLbl;
@property BOOL isChecked;
@property(nonatomic,strong) NSMutableArray *audioCollectionURL,*teluguLyrCollectionArray,*englishLyrCollectionArray;
@property NSInteger songNum;
- (IBAction)forwardBtnPressed:(id)sender;
- (IBAction)backwardBtnPressed:(id)sender;
- (IBAction)refreshBtnPressed:(id)sender;
- (IBAction)favouriteBtnPressed:(id)sender;
//Lyrics
@property (weak, nonatomic) IBOutlet UIButton *telugu_Button;
@property (weak, nonatomic) IBOutlet UIButton *english_Button;
@property (weak, nonatomic) IBOutlet UITextView *lyrics_TextView;
- (IBAction)teluguButtonClicked:(id)sender;
- (IBAction)englishButtonClicked:(id)sender;
@property (nonatomic,strong) NSString *englishLyr_String,*teluguLyr_String;
@end
VC.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%@",_audioURL_String);
NSLog(@"%@",self.audioCollectionURL);
[_lyrics_TextView setEditable:NO];
[self.navigationController setNavigationBarHidden:NO];
self.view.backgroundColor=[UIColor whiteColor];
self.navigationController.navigationBar.barTintColor=[UIColor colorWithRed:0.12 green:0.16 blue:0.41 alpha:1.0];
self.navigationController.navigationBar.tintColor=[UIColor whiteColor];
self.title=@"Bhajana Songs";
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
[self playingSong];
// Do any additional setup after loading the view.
[self lyrics];
}
-(void)viewWillDisappear:(BOOL)animated{
[self.player pause];
}
-(void)playingSong{
self.player =[[AVPlayer alloc]initWithURL:[NSURL URLWithString:_audioURL_String]];
CMTime duration =self.player.currentItem.asset.duration;
float seconds = CMTimeGetSeconds(duration);
self.progressSlider.maximumValue = seconds;
self.progressSlider.value = 0.0;
Float64 currentSeconds = CMTimeGetSeconds(duration);
int mins = seconds/60.0;
int secs = fmodf(currentSeconds, 60.0);
NSString *minsString = mins < 10 ? [NSString stringWithFormat:@"0%d", mins] :[NSString stringWithFormat:@"%d", mins];
NSString *secsString = secs < 10 ? [NSString stringWithFormat:@"0%d", secs] :[NSString stringWithFormat:@"%d", secs];
self.songDurationLbl.text = [NSString stringWithFormat:@"%@:%@", minsString, secsString];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTime:) userInfo:nil repeats:YES];
[self.player play];
}
- (IBAction)playBtnPressed:(id)sender {
self.isChecked =!self.isChecked;
if(self.isChecked == NO)
{
[sender setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
[self.player play];
}
else
{
[sender setImage:[UIImage imageNamed:@"Play_Button_blue .png"] forState:UIControlStateNormal];
[self.player pause];
}
}
- (IBAction)slide:(id)sender {
CMTime t = CMTimeMake(self.progressSlider.value, 1);
[self.player seekToTime:t];
}
- (void)updateTime:(NSTimer *)timer {
CMTime duration =self.player.currentTime;
float seconds = CMTimeGetSeconds(duration);
self.progressSlider.value = seconds;
Float64 currentSeconds = CMTimeGetSeconds(self.player.currentTime);
int mins = currentSeconds/60.0;
int secs = fmodf(currentSeconds, 60.0);
NSString *minsString = mins < 10 ? [NSString stringWithFormat:@"0%d", mins] :[NSString stringWithFormat:@"%d", mins];
NSString *secsString = secs < 10 ? [NSString stringWithFormat:@"0%d", secs] :[NSString stringWithFormat:@"%d", secs];
self.progessLbl.text = [NSString stringWithFormat:@"%@:%@", minsString, secsString];
}
- (IBAction)forwardBtnPressed:(id)sender {
self.songNum++;
NSLog(@"%ld",self.songNum);
if (self.songNum<self.audioCollectionURL.count) {
self.audioURL_String=[self.audioCollectionURL objectAtIndex:self.songNum];
self.teluguLyr_String=[self.teluguLyrCollectionArray objectAtIndex:self.songNum];
self.englishLyr_String=[self.englishLyrCollectionArray objectAtIndex:self.songNum];
[self playingSong];
[self lyrics];
}
else{
NSLog(@"no further songs available");
}
}
- (IBAction)backwardBtnPressed:(id)sender {
self.songNum--;
NSLog(@"%ld",self.songNum);
if (self.songNum>=0) {
self.audioURL_String=[self.audioCollectionURL objectAtIndex:self.songNum];
self.teluguLyr_String=[self.teluguLyrCollectionArray objectAtIndex:self.songNum];
self.englishLyr_String=[self.englishLyrCollectionArray objectAtIndex:self.songNum];
[self playingSong];
[self lyrics];
}
else{
NSLog(@"startng song reached");
}
}
- (IBAction)refreshBtnPressed:(id)sender {
}
- (IBAction)favouriteBtnPressed:(id)sender {
}
-(void)lyrics{
//Lyrics
[_telugu_Button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
[_english_Button setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
_lyrics_TextView.text=_teluguLyr_String;
}
- (IBAction)teluguButtonClicked:(id)sender {
[_telugu_Button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
[_english_Button setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
_lyrics_TextView.text=_teluguLyr_String;
}
- (IBAction)englishButtonClicked:(id)sender {
[_english_Button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
[_telugu_Button setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
_lyrics_TextView.text=_englishLyr_String;
}
@end
Sign up here with your email
1 comments:
Write commentsself.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
ReplyViewController *homeVc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
// UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:homeVc];
self.window.rootViewController = homeVc;
[self.window makeKeyAndVisible];
ConversionConversion EmoticonEmoticon