2013-10-04 66 views
0

我需要以编程方式点击一个按钮:[play sendActionsForControlEvents:UIControlEventTouchUpInside]; 但是当我这样做时,空间被称为两次!我需要启动AVPlayer(在ViewDidLoad中),但音乐也开始两次。请帮忙 :)。UIButton被点击两次

戏码:

- (IBAction)playStream:(id)sender { 
    NSLog(@"%@", @"PlayStream clicked: ", sender); 
     if(clicked == 0) { 
     clicked = 1; 
     [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
     [self becomeFirstResponder]; 
     [play setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal]; 
     [playerr play]; 
    } 
    else { 
     [playerr stop]; 
     [play setImage:[UIImage imageNamed:@"Start"] forState:UIControlStateNormal]; 
     [audio setActive:NO error:nil]; 
     clicked = 0; 
    } 
} 
+0

请张贴您的代码。 – RLH

+0

请清理你的代码。 – AdamG

+0

对不起,我不知道该怎么做... – matthijs2704

回答

1

如何:

@implementation MyClassName{ 
    BOOL musicPlaying; 
} 

- (IBAction)playStream:(id)sender { 
    if(musicPlaying){ 
     [self pauseMusic]; 
    }else{ 
     [self playMusic]; 
    } 
} 

-(void)playMusic{ 
    musicPlaying= YES; 
    [play setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal]; 
    [playerr play]; 
} 

-(void)pauseMusic{ 
    musicPlaying= NO; 
    [playerr stop]; 
    [play setImage:[UIImage imageNamed:@"Start"] forState:UIControlStateNormal]; 
    [audio setActive:NO error:nil]; 
} 

现在不是编程轻点按钮,只需拨打playMusic或pauseMusic。

+0

谢谢,我只是自己修复它....但你的代码正在工作:)现在即时通讯使用:(playerr.playbackState ==!MPMoviePlaybackStatePlaying)。我将AVPlayer更改为隐藏的MPMoviePlayer(用于音频流) – matthijs2704