iOS 实现倒计时
来源:互联网 发布:淘宝客服骂人投诉电话 编辑:程序博客网 时间:2024/06/11 06:01
- (void)viewDidLoad {
[super viewDidLoad];
self.isRecording = NO;
[self.playBtn setEnabled:NO];
self.playBtn.titleLabel.alpha = 0.5;
recordedFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@"RecordedFile"]];
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *sessionError;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
if(session == nil)
NSLog(@"Error creating session: %@", [sessionError description]);
else
[session setActive:YES error:nil];
UILongPressGestureRecognizer * longGes = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
[self.recordButton addGestureRecognizer:longGes];
}
-(void)longPress:(UILongPressGestureRecognizer *)press {
if(press.state == UIGestureRecognizerStateBegan) {
_count = 0;
self.recordButton.enabled = YES;
[self prepareTimer];
}else if(press.state ==UIGestureRecognizerStateEnded) {
[_timer invalidate];
_timer = nil;
self.isRecording = NO;
[self.recordButton setTitle:@"录音" forState:UIControlStateNormal];
[self.playBtn setEnabled:YES];
[self.playBtn.titleLabel setAlpha:1];
[recorder stop];
recorder = nil;
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedFile error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}
player.delegate = self;
}
}
-(void)prepareTimer {
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(performWithTimer:) userInfo:nil repeats:YES];
[_timer setFireDate:[NSDate distantPast]];
}
-(void)performWithTimer:(NSTimer *)timer {
_count++;
if(_count < 30) {
if(_isRecording == NO) {
self.isRecording = YES;
[self.recordButton setTitle:@"停止录音" forState:UIControlStateNormal];
[self.playBtn setEnabled:NO];
[self.playBtn.titleLabel setAlpha:0.5];
recorder = [[AVAudioRecorder alloc] initWithURL:recordedFile settings:nil error:nil];
[recorder prepareToRecord];
[recorder record];
player = nil;
}
}else {
_isRecording =NO;
[recorder stop];
[_timer invalidate];
_timer = nil;
[self.playBtn setEnabled:YES];
[self.playBtn.titleLabel setAlpha:1];
[recorder stop];
recorder = nil;
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedFile error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}
player.delegate = self;
[self.recordButton setTitle:@"录音" forState:UIControlStateNormal]; ;
UIAlertView * view = [[UIAlertView alloc]initWithTitle:@"标题" message:@"超过了" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[view show];
}
}
- (IBAction)playPause:(id)sender {
if([player isPlaying])
{
[player pause];
[self.recordButton setEnabled:YES];
[self.playBtn setTitle:@"播放" forState:UIControlStateNormal];
}
else
{
[player play];
[self.playBtn setTitle:@"停止播放" forState:UIControlStateNormal];
[self.recordButton setEnabled:NO];
}
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[self.playBtn setTitle:@"播放" forState:UIControlStateNormal];
[self.recordButton setEnabled:YES];
}
[super viewDidLoad];
self.isRecording = NO;
[self.playBtn setEnabled:NO];
self.playBtn.titleLabel.alpha = 0.5;
recordedFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingString:@"RecordedFile"]];
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *sessionError;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];
if(session == nil)
NSLog(@"Error creating session: %@", [sessionError description]);
else
[session setActive:YES error:nil];
UILongPressGestureRecognizer * longGes = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
[self.recordButton addGestureRecognizer:longGes];
}
-(void)longPress:(UILongPressGestureRecognizer *)press {
if(press.state == UIGestureRecognizerStateBegan) {
_count = 0;
self.recordButton.enabled = YES;
[self prepareTimer];
}else if(press.state ==UIGestureRecognizerStateEnded) {
[_timer invalidate];
_timer = nil;
self.isRecording = NO;
[self.recordButton setTitle:@"录音" forState:UIControlStateNormal];
[self.playBtn setEnabled:YES];
[self.playBtn.titleLabel setAlpha:1];
[recorder stop];
recorder = nil;
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedFile error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}
player.delegate = self;
}
}
-(void)prepareTimer {
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(performWithTimer:) userInfo:nil repeats:YES];
[_timer setFireDate:[NSDate distantPast]];
}
-(void)performWithTimer:(NSTimer *)timer {
_count++;
if(_count < 30) {
if(_isRecording == NO) {
self.isRecording = YES;
[self.recordButton setTitle:@"停止录音" forState:UIControlStateNormal];
[self.playBtn setEnabled:NO];
[self.playBtn.titleLabel setAlpha:0.5];
recorder = [[AVAudioRecorder alloc] initWithURL:recordedFile settings:nil error:nil];
[recorder prepareToRecord];
[recorder record];
player = nil;
}
}else {
_isRecording =NO;
[recorder stop];
[_timer invalidate];
_timer = nil;
[self.playBtn setEnabled:YES];
[self.playBtn.titleLabel setAlpha:1];
[recorder stop];
recorder = nil;
NSError *playerError;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedFile error:&playerError];
if (player == nil)
{
NSLog(@"ERror creating player: %@", [playerError description]);
}
player.delegate = self;
[self.recordButton setTitle:@"录音" forState:UIControlStateNormal]; ;
UIAlertView * view = [[UIAlertView alloc]initWithTitle:@"标题" message:@"超过了" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[view show];
}
}
- (IBAction)playPause:(id)sender {
if([player isPlaying])
{
[player pause];
[self.recordButton setEnabled:YES];
[self.playBtn setTitle:@"播放" forState:UIControlStateNormal];
}
else
{
[player play];
[self.playBtn setTitle:@"停止播放" forState:UIControlStateNormal];
[self.recordButton setEnabled:NO];
}
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[self.playBtn setTitle:@"播放" forState:UIControlStateNormal];
[self.recordButton setEnabled:YES];
}
0 0
- iOS NSTimer 实现倒计时
- ios倒计时实现
- iOS 实现倒计时
- iOS实现倒计时功能
- iOS实现倒计时功能
- iOS实现倒计时
- iOS倒计时的实现
- ios开发之倒计时实现
- iOS实现倒计时label显示
- iOS之实现倒计时功能
- ios倒计时的实现方法
- iOS中倒计时实现效果
- ios开发实现倒计时功能
- iOS毫秒倒计时的实现
- 按钮倒计时的实现 iOS
- 用NSTimer实现倒计时--ios开发
- 用NSTimer实现倒计时--ios开发
- 用NSTimer实现倒计时--ios开发
- 【原创】使用react-active运行实例
- SQL Server中行列转换 Pivot UnPivot
- Task的使用
- MotionEvent子类注释
- 第八周项目一(1):实现复数类中的运算符重载:类的成员函数
- iOS 实现倒计时
- 从零开始nodejs系列文章
- perl 编程基础
- 关于右值引用的一个错误。
- 银联在线支付---利用测试案例代码模拟支付应用(修改)
- 读取excel 工具类
- Android f_rndis 分析笔记
- RFID系统二进制树型搜索算法是如何解决碰撞的?简述其实现步骤
- 散列(2)线性探测法和双重散列法