gpt4 book ai didi

iphone - 你能看出这段代码有什么问题吗?

转载 作者:行者123 更新时间:2023-12-03 20:18:04 25 4
gpt4 key购买 nike

NSString *path = [[NSBundle mainBundle] pathForResource:[arraySub objectAtIndex:indexPathHere.row] ofType:@"mp3"];
NSURL *file = [[NSURL alloc] initFileURLWithPath:path];
AVAudioPlayer *myPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:nil];
self.player = myPlayer;
[player prepareToPlay];
[player setDelegate:self];
[self.player play];

NSTimeInterval lenghtMusic = player.duration;

if (player.currentTime == lenghtMusic) {
NSLog(@"It worked");
[tableThing deselectRowAtIndexPath:indexPathHere animated:YES];
[myPlayer autorelease];
[file autorelease];
}

你能看出什么问题吗?

显然,“if”语句永远不会被调用......

最佳答案

如果我正确地阅读了您的代码,您将尝试找出玩家何时完成游戏,然后您想要取消选择当前的骑行并释放玩家。 您的问题是您启动播放器,然后立即检查它当前正在播放的位置。除非您有一个几乎为 0 长度的文件,否则当前时间和长度永远不会相等。

如果这就是您想要做的,您应该使用 AVAudioPlayerDelegate Protocol尤其是:

– audioPlayerDidFinishPlaying:successfully:

播放器完成时调用的方法。

因此,您需要通过编辑 .h 文件来更改控制播放器的类以使用 AVAudioPlayerDelegate 协议(protocol)。显然,继续扩展之前的内容。

@interface YourClass <AVAudioPlayerDelegate>

@end

在您的 .m 文件中:然后,当您创建并分配播放器实例时:

[player setDelegate:self];

在.m文件中还添加该方法

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
// Your success code goes here
}

关于iphone - 你能看出这段代码有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com