我正在开发一个电子书阅读器。单击图标时需要播放一些音频文件。音频第一次播放正常。但是,当我按下应用程序的主页按钮并返回音频播放器时,音频正在播放两次。每次按下主页按钮并返回音频播放器时,该数字将继续增加1。使用调试器我发现这个循环运行了多次。任何人都可以解释为什么它会像那样?
-(void)StartPlayingFileWithNotification:(NSNotification *)notifcation{
// Load the array with the sample file
NSString *f = [[notifcation userInfo] valueForKey:@"audiopath"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: f];
if(fileURL == nil){
GLogError(@"%@",@"File Not Found");
return;
}else {
GLogInfo(@"%@",@"Got audio file");
}
if (self.player != nil) {
if (self.player.playing) {
[self.player stop];
}
[player release];
player = nil;
}
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
if (self.player)
{
fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[player.url relativePath] lastPathComponent], player.numberOfChannels, nil];
NSLog(@"The audio file is %@",fileName.text);
NSLog(@"The file URL is %@",[fileURL description]);
[self updateViewForPlayerInfo:player];
player.numberOfLoops = 0;
player.delegate = self;
[player play];
[self updateViewForPlayerState:player];
}
[fileURL release];
}
答案 0 :(得分:0)
检查您的@synthesize
,成员var和@property
声明。你有打字错误吗?在任何地方使用self.player
,或只使用player
,但请尽量避免混合使用。