1

その後何かをするためにどのサウンドが終了したかを判断するために、2 つの AVAudioPlayer があります。最初のサウンドは正常に再生されますが、2 番目のサウンド (twoPlayer) はエコーのあるサウンドを再生します。なぜ、またはどのようにこれが起こったのか知っている人はいますか?

私はこれを.hファイルに持っています:

@interface myClass : UIViewController<AVAudioPlayerDelegate>
{
    AVAudioPlayer *onePlayer;
    AVAudioPlayer *twoPlayer;
}
@property (retain, nonatomic) AVAudioPlayer *onePlayer;
@property (retain, nonatomic) AVAudioPlayer *twoPlayer;


.m file:

    NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"m4a"];

    NSURL *url = [NSURL fileURLWithPath:urlAddress];

    NSError *error;
    twoPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    twoPlayer.delegate=self;
    twoPlayer.volume=0.5;
    if (twoPlayer == nil)
        NSLog(@"[error description]");
    else
        [twoPlayer play];

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {


    if (player==onePlayer) {
        [onePlayer release];
    }
    if (player==twoPlayer) {
        [numberPlayer release];
    }

}
4

1 に答える 1

0

「forControlEvents:UIControlEventAllTouchEvents」でUIButtonを設定しているときにエラーが発生し、actionwが複数回トリガーされたことがわかりました。UIButtonをこのforControlEvents:UIControlEventTouchDownに置き換えて、問題なく動作します。

于 2012-09-29T00:59:54.827 に答える