2014-02-06 57 views
0

我正在嘗試使用AVAudioPlayer播放MP3。下面是我的代碼:讓我的AVAudio播放器正常工作

- (void) playClip { 
NSString *mp3File = [[NSBundle mainBundle] pathForResource:@"inFavor" ofType:@"mp3"]; 
AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL]; 
[avPlayer play]; 
} 

說我引用文件的名稱是「inFavor.mp3」

我是一個有點新的Objective-C的,所以我不確切地說,爲什麼這不起作用。我正在使用Xcode 5.

+0

初始化是否已確認'mp3File'不是'nil'?並利用'error'參數來記錄問題。 – rmaddy

+0

當涉及AVAudioPlayer的問題太多時,您的問題有什麼特別之處? -1 –

+0

剛剛接觸此事並尋求幫助。我的意圖不是增加混亂。對於有經驗的人來說,看起來很明顯(或者是一個糟糕的問題)可能對於新人來說看起來很正常因爲對於每個回答問題的人來說,都會有人告訴你這是一個愚蠢的問題。 :/ – johnnyrandak

回答

1

使AVAudioPlayer成爲該類的一個屬性,以便在函數超出作用域時不會釋放它。

@property (strong, nonatomic) AVAudioPlayer* avPlayer; 

然後用

self.avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL]; 
+0

分配給id 感謝您的幫助!我想我已經得到它的工作。 – johnnyrandak

1

嘗試此代碼,您需要檢查錯誤。粘貼您遇到的錯誤日誌

NSError *error; 
NSString *path = [[NSBundle mainBundle] pathForResource:@"inFavor" 
               ofType:@"mp3"]; 
AVAudioPlayer* avPlayer = 
    [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] 
             error:&error]; 
if (error) { 
    NSLog(@"failed playing error: %@", error); 
}else{ 
//avPlayer.delegate = self; 
[avPlayer play]; 
} 
+0

上寫着: avPlayer.delegate = self; 它給我一個(黃色)錯誤信息,說:「從不兼容的類型RJViewController * const_strong – johnnyrandak