我开发了一个通用应用程序,它从本地读取音频文件,并将使用AvAudioPlayer播放。在这里,我使用AvAudioPlayer的PlayAtTime属性来前进和后退音频。
这里我的问题是这个playAtTime属性在ios 4.0及更高版本中工作正常,而不在IOS-3.0中工作。
我提到的框架说- (BOOL)playAtTime:(NSTimeInterval)time NS_AVAILABLE(10_7, 4_0);
在某种意义上我无法在ios 3.0中使用它......然后是什么修复ios 3.0
有没有解决方案可以解决这个问题。还有什么建议。??
答案 0 :(得分:3)
快速查看documents,显然会让您知道它仅适用于iOS 4.0以上
<强>状况强>
适用于iOS 4.0及更高版本。
尝试
currentTime
声音时间轴内的播放点(以秒为单位) 与音频播放器相关联。
@property NSTimeInterval currentTime
<强>讨论强>
如果正在播放声音,则currentTime是当前的偏移量 播放位置,以声音开始后的秒数为单位。如果 声音没有播放,currentTime是播放的偏移量 从调用播放方法开始,以秒为单位测量 声音的开始。
通过设置此属性,您可以搜索声音中的特定点 提交或实施音频快进和快退功能。
答案 1 :(得分:2)
playAtTime可从iOS 4.0获得,请参阅doc获取更多信息;)
答案 2 :(得分:0)
如果你不喜欢超级准确的同步,你可以尝试这样的东西(也可以在IOS4 +中工作,但不是那么准确)。注意 - 要取消它,您需要保存返回值并向其发送“[mySavedTimer invalidate]”消息。
@interface AVAudioPlayer (playAtTimePreIOS4)
-(NSTimeInterval) deviceCurrentTime_preIOS4;
-(NSTimer *) playAtTime_preIOS4 :(NSTimeInterval)atTime;
@end
@implementation AVAudioPlayer (playAtTimePreIOS4)
-(NSTimeInterval) deviceCurrentTime_preIOS4 {
static NSDate *fakeIt = nil;
if (fakeIt==nil) {
fakeIt = [[NSDate alloc] init];
}
return 0.0-[fakeIt timeIntervalSinceNow];
}
-(NSTimer *) playAtTime_preIOS4 :(NSTimeInterval)atTime {
NSTimeInterval fromNow = atTime - self.deviceCurrentTime_preIOS4;
return [NSTimer scheduledTimerWithTimeInterval:fromNow target:self selector:@selector(play) userInfo:nil repeats:NO];
}