如何检查 Audioplayer 的播放时间增加 2 秒
Posted
技术标签:
【中文标题】如何检查 Audioplayer 的播放时间增加 2 秒【英文标题】:How to Check Playback Time of Audioplayer increases by 2 seconds 【发布时间】:2013-03-02 20:55:48 【问题描述】:我正在尝试编写一个循环来检查每当音频 player.currenttime 增加 2 秒时它应该执行更新视图方法
- (void)myTimerMethod
NSLog(@"myTimerMethod is Called");
myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(checkPlaybackTime:)
userInfo:nil
repeats:YES];
- (void)checkPlaybackTime:(NSTimer *)theTimer
float seconds = audioplayer.currenttime;
NSLog(@"Cur: %f",audioPlayer.currentTime );
if (seconds = seconds + 2)
[self update view];
- (void)UpdateView
if (index < [textArray count])
self.textView.text = [self.textArray objectAtIndex:index];
self.imageView.image = [self.imagesArray objectAtIndex:index];
index++;
else
index = 0;
如果音频 player.currenttimer 增加 2 秒,那么正确的写法是什么。
当前时间的 NSLog 始终显示 0.00。这是为什么。它应该随着音频播放器的播放而增加。
感谢您的帮助。
【问题讨论】:
【参考方案1】:我从你给出的解释中了解到你想增加这样的时间间隔
Timer calls after 0.55
Timer calls after 0.60
Timer calls after 0.65
Timer calls after 0.70
等等。
如果这是您想要做的。然后我认为你可以这样做,通过将repeats:YES 更改为repeats:NO 以便计时器不重复,然后在onTimer 中,只需启动一个间隔更长的新计时器。
你需要一个变量来保存你的时间间隔,这样你就可以通过 onTimer 每次让它变长一点。
另外,您可能不再需要保留计时器,因为它只会触发一次,当它触发时,您将获得一个新计时器。
float gap = 0.50;
[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
-(void) onTimer
gap = gap + .05;
[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
希望对你有帮助
【讨论】:
感谢您的回复。这个解决方案是我一直在寻找的最佳解决方案。【参考方案2】:首先,尝试在 NSLog 中使用浮点“秒”而不是当前时间。
NSLog(@"Cur: %f", seconds);
当前时间不是浮点数,它是一个 NSTimer 对象,因此您必须在 NSLog 文本中使用 %@
NSLog(@"Cur: %@",audioPlayer.currentTime );
应该也可以。
假设您的 audioPlayer 设置正确,如果您正在寻找计时器何时为 2 秒,您的 if 语句将是
if(seconds == 2)
[self update view];
如果您正在寻找每次计时器达到偶数时,即 2、4、6 等,您的 if 语句将是
if(seconds % 2 == 0)
[self update view];
if 语句中的 % 是模符号:http://www.cprogramming.com/tutorial/modulus.html
此外,您当前的 if 语句正在分配而不是检查 seconds 变量。要检查它,您需要 == 而不是 =。但是,您当前的 if 语句永远不会为真,因为您正在检查一个变量本身 + 2。换句话说,如果秒等于 2,您的 if 语句询问是否 2 == (2+2) 或者它是否它是 4,它询问是否 2 == (4+2)。此陈述无法验证为真。
希望这会有所帮助!
【讨论】:
感谢您的详细回复。欣赏它。以上是关于如何检查 Audioplayer 的播放时间增加 2 秒的主要内容,如果未能解决你的问题,请参考以下文章