0

プログラムでボタンをクリックする必要があります。[play sendActionsForControlEvents:UIControlEventTouchUpInside]; しかし、そうすると、void が 2 回呼び出されました。AVPlayer を (ViewDidLoad で) 開始する必要がありますが、音楽も 2 回開始されました。助けてください :)。

プレイコード:

- (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;
    }
} 
4

1 に答える 1

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 を呼び出すだけです。

于 2013-10-04T20:20:08.470 に答える