播放音乐

落花浮王杯 提交于 2020-03-08 19:28:17

播放音乐

1.2.#import "ViewController.h"3.#import <AVFoundation/AVFoundation.h>4.5.@interface ViewController () <AVAudioPlayerDelegate> {6.    AVAudioPlayer *myAudioPlayer;7.}8.@property (weak, nonatomic) IBOutlet UILabel *artistLabel;9.@property (weak, nonatomic) IBOutlet UILabel *albumLabel;10.@property (weak, nonatomic) IBOutlet UIImageView *artworkImageView;11.12.@end13.14.@implementation ViewController15.16.- (void)viewDidLoad {17.    [super viewDidLoad];18.19.    // 获得音频会话的单例对象20.    AVAudioSession *audioSession = [AVAudioSession sharedInstance];21.    // 激活音频会话22.    [audioSession setActive:YES error:nil];23.    // 设置支持后台播放24.    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];25.    // 设置应用程序可以接受远程控制事件26.    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];27.28.    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"后会无期" ofType:@"mp3"];29.    NSURL *fileUrl = [NSURL fileURLWithPath:filePath];30.31.32.    // 创建一个AVURLAsset对象,该对象保存了音频文件的元数据33.    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:fileUrl options:nil];34.    // 获得元数据格式35.    NSString *format = [[asset availableMetadataFormats] firstObject];36.37.    // 根据指定的格式获得元数据38.    // 对获得的元数据做一个循环取到其中的每一项39.    for (AVMetadataItem *item in [asset metadataForFormat:format]) {40.        if ([item.commonKey isEqualToString:@"artist"]) { // 艺术家41.            self.artistLabel.text = (id)item.value;42.        }43.        else if ([item.commonKey isEqualToString:@"albumName"]) {   // 专辑44.            self.albumLabel.text = (id)item.value;45.        }46.        else if ([item.commonKey isEqualToString:@"artwork"]) { // 封面47.            // 如果是封面的话item.value是封面图片的二进制数据48.            // 需要转换成UIImage对象49.            NSData *data = (id)item.value;50.            self.artworkImageView.image = [UIImage imageWithData:data];51.        }52.        else if ([item.commonKey isEqualToString:@"title"]) {   // 歌名53.54.        }55.    }56.57.    myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:nil];58.    // 音量(0-1) 1以后软放大59.    myAudioPlayer.volume = 1;60.    // 缓冲61.    [myAudioPlayer prepareToPlay];62.    // 开始播放63.    [myAudioPlayer play];64.    // 暂停播放65.    // [myAudioPlayer pause];66.67.    myAudioPlayer.delegate = self;68.69.//    myAudioPlayer.enableRate = YES;70.//    myAudioPlayer.rate = 8;71.}72.73.- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {74.    // 当播放完成时要回调的方法(可以在此处添加代码实现播放下一首)75.76.}77.78.@end79.80.
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!