0

私はmp3を再生するためにこの方法を持っています:

- (void) playSound:(NSString*)sound{

    NSString *path = [NSString stringWithFormat:@"%@/%@",
                      [[NSBundle mainBundle] resourcePath],
                      sound];
    NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:nil];
    [player prepareToPlay]; 
    [player play];  
}

このメソッドを呼び出すたびに、新しい文字列「sound」を取得し、このAVAudioplayer「player」を毎回割り当てる必要があります。止めたときや終わったら離したい…できますか?

4

2 に答える 2

2

以下の指示を試してください

yourViewController.h

 @interface yourViewController : UIViewController <AVAudioPlayerDelegate>

add 関数の yourViewController.m ファイル

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
 //play finished
}

以下のコードで AVAudioPlayer オブジェクトを宣言します。

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL
                                                                fileURLWithPath:[[NSBundle mainBundle] 
                                                                                 pathForResource:@"audio" ofType:@"mp3"]] error:NULL]; 

    audioPlayer.delegate = self;
    audioPlayer.currentTime=0.0f;
    [audioPlayer prepareToPlay];
    [audioPlayer play];

ありがとう..!

于 2012-04-20T08:41:12.623 に答える
0

AVAudioPlayerDelegate を見てください。

audioPlayerDidFinishPlaying:successfully: および audioPlayerDecodeErrorDidOccur:error: メソッドがあり、必要なことを実行できます。

于 2012-04-20T08:39:20.653 に答える