1、播放本地音樂
將音頻文件添加到您的Xcode項目中违孝。確保將音頻文件的目標成員身份設(shè)置為您的應(yīng)用程序择同。
導入AVFoundation框架为鳄,并在您的視圖控制器或其他適當?shù)奈恢锰砑右韵麓a:
#import <AVFoundation/AVFoundation.h>
在視圖控制器的屬性或適當?shù)念悢U展中聲明AVAudioPlayer實例變量:
需要注意:
AVAudioPlayer不能作為局部變量!
AVAudioPlayer不能作為局部變量!
AVAudioPlayer不能作為局部變量!
否則會出現(xiàn)播放沒聲音的情況。
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
在需要播放音樂的地方溉箕,初始化并播放AVAudioPlayer實例晦墙。
NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
NSURL *audioFileURL = [NSURL fileURLWithPath:audioFilePath];
NSError *error = nil;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileURL error:&error];
if (self.audioPlayer) {
[self.audioPlayer play];
} else {
NSLog(@"Failed to initialize audio player: %@", [error localizedDescription]);
}
請確保將"music"替換為您的音頻文件的名稱,并將"mp3"替換為您的音頻文件的擴展名肴茄。
若要停止音樂播放晌畅,您可以調(diào)用stop方法:
[self.audioPlayer stop];
根據(jù)您的需求,您可能還需要處理音頻的其他方面寡痰,例如處理播放進度抗楔、音量控制等。有關(guān)更多高級功能拦坠,請參考Apple的AVFoundation框架文檔连躏。
2、播放網(wǎng)絡(luò)URL音樂
導入AVFoundation框架贞滨,并在您的視圖控制器或其他適當?shù)奈恢锰砑右韵麓a:
#import <AVFoundation/AVFoundation.h>
在視圖控制器的屬性或適當?shù)念悢U展中聲明AVAudioPlayer實例變量:
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
在需要播放音樂的地方入热,初始化并播放AVAudioPlayer實例。
NSURL *audioURL = [NSURL URLWithString:@"https://example.com/music.mp3"];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:audioURL];
self.player = [AVPlayer playerWithPlayerItem:playerItem];
[self.player play];
請將上述代碼中的URL替換為您要播放的音樂的實際URL晓铆。
若要停止音樂播放勺良,您可以調(diào)用pause方法:
[self.player pause];
播放網(wǎng)絡(luò)URL音樂無限循環(huán)播放
#import <AVFoundation/AVFoundation.h>
@interface YourViewController ()
@property (nonatomic, strong) AVPlayer *player;
@property (nonatomic, strong) AVPlayerItem *playerItem;
@end
@implementation YourViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 設(shè)置音頻URL
NSURL *audioURL = [NSURL URLWithString:@"https://example.com/music.mp3"];
self.playerItem = [AVPlayerItem playerItemWithURL:audioURL];
// 監(jiān)聽播放完成通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemDidReachEnd:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.playerItem];
// 初始化AVPlayer
self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
// 開始播放音頻
[self.player play];
}
// 播放完成通知回調(diào)
- (void)playerItemDidReachEnd:(NSNotification *)notification {
// 重置播放時間為0
[self.playerItem seekToTime:kCMTimeZero];
// 重新開始播放
[self.player play];
}
- (void)dealloc {
// 移除通知觀察者
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.playerItem];
}
@end