我有这段代码:
NSString *path = [NSString stringWithFormat:@"%@/%@",
[[NSBundle mainBundle] resourcePath],
@"change.mp3"];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
change = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:nil];
[change prepareToPlay];
我在viewdidload中写了这段代码; 现在有一个按钮,我开始发出这个声音,但是如果我按下相同的按钮,我想停止这个声音并重新启动声音;我在IBAction中尝试此代码,但它不起作用
[change stop];
[change prepareToPlay];
[change play];
我该怎么办?
答案 0 :(得分:12)
这个怎么样:
[change pause];
change.currentTime = 0.0;
[change play];
答案 1 :(得分:1)
方法-stop
的{{3}}说:
stop方法不会将currentTime属性的值重置为0.换句话说,如果在播放期间调用stop然后调用play,则播放将从其停止的位置恢复。
因此,您必须使用属性currentTime
并将其设置为0
:
[change pause];
[change setCurrentTime:0];
[change play];
答案 2 :(得分:0)
您是否尝试重新初始化?我的意思是第一个[change release]
并初始化它。