Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone-将按钮设置回初始状态_Iphone_Objective C - Fatal编程技术网

iPhone-将按钮设置回初始状态

iPhone-将按钮设置回初始状态,iphone,objective-c,Iphone,Objective C,我用播放和停止图像创建了一个按钮,我想要的是当我按下播放,声音结束时,停止图像应该返回播放,但它不起作用,请任何人帮忙。干杯 - (IBAction)play { if(clicked == 0){ clicked = 1; NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/TEST.wav", [[NSBundle mainBundle] resourcePath]]

我用播放和停止图像创建了一个按钮,我想要的是当我按下播放,声音结束时,停止图像应该返回播放,但它不起作用,请任何人帮忙。干杯

- (IBAction)play {

    if(clicked == 0){
        clicked = 1;
        NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/TEST.wav", [[NSBundle mainBundle] resourcePath]]];

        NSError *error;
        audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
        audioPlayer.numberOfLoops = 0;


        [audioPlayer play];
        [start setImage:[UIImage imageNamed:@"stop.png"] forState:UIControlStateNormal];

    } 
    else{
        [audioPlayer release];
        clicked = 0;
        [start setImage:[UIImage imageNamed:@"pla.png"] forState:UIControlStateNormal];
    } 

}

//If user does not do anything by the end of the sound set the button to start
- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player
                        successfully: (BOOL) flag {
    if (flag==YES) {
        [start setImage:[UIImage imageNamed:@"pla.png"] forState:UIControlStateNormal];
    }
} 
这是我的.h文件

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

int clicked;

@interface _0_RabbanasViewController : UIViewController {

    IBOutlet UIScrollView *scroll;
    AVAudioPlayer *audioPlayer;
    IBOutlet UIButton *start;

    IBOutlet UIImage *iPla;
    IBOutlet UIImage *iStop;
    BOOL successfully;

}

- (IBAction)play;
- (IBAction)next;

@end
#导入
#进口
点击int;
@接口_0_RabbanasViewController:UIViewController{
IBUIScrollView*滚动;
AVAudioPlayer*音频播放器;
iBui按钮*启动;
IBUIImage*iPla;
ibuiimage*iStop;
布尔成功;
}
-(i)游戏;
-(i)下一步;
@结束

确保将AVAudioPlayer实例的委托设置为self:

[audioPlayer setDelegate:self];
在头文件中,订阅AVAudioPlayerDelegate协议:

<AVAudioPlayerDelegate>
@interface _0_RabbanasViewController : UIViewController <AVAudioPlayerDelegate> {

IBOutlet UIScrollView *scroll;
AVAudioPlayer *audioPlayer;
IBOutlet UIButton *start;
...
编辑3:添加以下内容:

- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player
                        successfully: (BOOL) flag {
    if (flag==YES) {
        clicked = 0;
        [start setImage:[UIImage imageNamed:@"pla.png"] forState:UIControlStateNormal];
    }
} 

确保将AVAudioPlayer实例的委托设置为self:

[audioPlayer setDelegate:self];
在头文件中,订阅AVAudioPlayerDelegate协议:

<AVAudioPlayerDelegate>
@interface _0_RabbanasViewController : UIViewController <AVAudioPlayerDelegate> {

IBOutlet UIScrollView *scroll;
AVAudioPlayer *audioPlayer;
IBOutlet UIButton *start;
...
编辑3:添加以下内容:

- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player
                        successfully: (BOOL) flag {
    if (flag==YES) {
        clicked = 0;
        [start setImage:[UIImage imageNamed:@"pla.png"] forState:UIControlStateNormal];
    }
} 

手动将图像设置为“pla.png”是否有效(按stop时)?是的,当我单击播放时,音频将播放并显示停止图像,当我单击stop时,它将停止音频并显示播放。我只是不知道播放结束时要添加什么,停止应该显示。手动将图像设置为“pla.png”是否有效(按停止键时)?是的,当我单击播放时,音频将播放,停止图像将显示,当我单击停止键时,停止音频并显示播放。我只是不知道在播放结束时应该添加什么,停止应该显示。谢谢你的快速回答,我不明白你想让我把代码放在哪里,你介意将代码添加到我发布的代码中吗。Cheers.add[audioPlayer设置代表:self];就在[音频播放器播放]之前,你能发布相应的.h文件吗?这样我就可以告诉你在哪里放置其他位了?+1,idipro必须检查是否在所有位置调用AudioPlayerIDfinishPlay。评论不能是多行的,编辑你的原始帖子,然后将你的.h文件放在那里。:)现在完成了,对不起,我是新来的:)-#导入#导入谢谢你的快速回答,我不明白你想让我把代码放在哪里,你介意将代码添加到我发布的代码中吗。Cheers.add[audioPlayer设置代表:self];就在[音频播放器播放]之前,你能发布相应的.h文件吗?这样我就可以告诉你在哪里放置其他位了?+1,idipro必须检查是否在所有位置调用AudioPlayerIDfinishPlay。评论不能是多行的,编辑你的原始帖子,然后将你的.h文件放在那里。:)对不起,我是新来的:)-#导入#导入