iOS播放器 - AVAudioPlayer

今天记录一下AVAudioPlayer,这个播放器类苹果提供了一些代理方法,主要用来播放本地音频。

其实也可以用来播放网络音频,只不过是将整个网络文件下载下来而已,在实际开发中会比较耗费流量不做推荐。

下面是相关代码:

#import "ViewController.h"

//引入框架

#import <AVFoundation/AVFoundation.h>

@interface ViewController ()

<

AVAudioPlayerDelegate

>

//设置全局对象,否则将会出现没有声音出现的情况

@property (nonatomic,strong) AVAudioPlayer *audioPlayer;

@property (nonatomic,strong) NSTimer *timer;

@property (nonatomic,strong) NSArray *mp3Array;

@property (nonatomic) NSInteger currentMp3;

@property (nonatomic,strong) NSArray *lrcArray;

@property (nonatomic,strong) CYParserLrc *parser;

@property (nonatomic)NSInteger currentRow;

@end

@implementation ViewController

-(void)initWithMp3Path:(NSString *)mp3Path lrcPath:(NSString *)lrcPath

{

//initWithContentsOfURL 路径(本地)

self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3Path] error:nil];

//准备播放

[self.audioPlayer prepareToPlay];

//设置声音

self.audioPlayer.volume = 0.5f;

 //设置代理

self.audioPlayer.delegate = self;

//设置进度条最大值

//duration  当前音乐的总时间

self.song.maximumValue = self.audioPlayer.duration;

//解析歌词

[self.parser parserLrc:lrcPath];

//下一曲 刷新tableView

[self.tableView reloadData];

self.timer = [NSTimer scheduledTimerWithTimeInterval:.1f target:self selector:@selector(timeChange) userInfo:nil repeats:YES];

}

#pragma 代理方法

/* audioPlayerDidFinishPlaying:successfully: is called when a sound has finished playing. This method is NOT called if the player is stopped due to an interruption. */

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

/* if an error occurs while decoding it will be reported to the delegate. */

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error;

#if TARGET_OS_IPHONE

/* AVAudioPlayer INTERRUPTION NOTIFICATIONS ARE DEPRECATED - Use AVAudioSession instead. */

/* audioPlayerBeginInterruption: is called when the audio session has been interrupted while the player was playing. The player will have been paused. */

- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player NS_DEPRECATED_IOS(2_2, 8_0);

/* audioPlayerEndInterruption:withOptions: is called when the audio session interruption has ended and this player had been interrupted while playing. */

/* Currently the only flag is AVAudioSessionInterruptionFlags_ShouldResume. */

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags NS_DEPRECATED_IOS(6_0, 8_0);

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags NS_DEPRECATED_IOS(4_0, 6_0);

/* audioPlayerEndInterruption: is called when the preferred method, audioPlayerEndInterruption:withFlags:, is not implemented. */

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player NS_DEPRECATED_IOS(2_2, 6_0);

时间: 2024-10-11 09:03:19

iOS播放器 - AVAudioPlayer的相关文章

AvAudioPlayer类是编写iOS播放器

转载自 http://www.cnblogs.com/liukunpeng/p/3737412.html 首先介绍一下,AvAudioPlayer它是苹果公司封装好的一个类,用起来很方便,功能也很强大,但是它只支持播放沙盒存好的音乐,不支持在线播放,是苹果公司自家ipod播放器专用的.这点大家知道即可不必深究: 1,创建AvAudioPlayer: 在工程中导入(AVFoundation.framework)框架,它是首要的,否则一切免谈,然后导入(#import )这个头文件. 开始创建AvA

OCiOS开发:音频播放器 AVAudioPlayer

简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放控制接口自行实现. AVAudioPlayer仅能播放本地音频文件,并支持以下格式文件:.mp3..m4a..wav..caf..aif?. 经常用法 初始化方法 // 1.NSURL 它仅仅能从file://格式的URL装入音频数据,不支持流式音频及HTTP流和网络流. - (id)initWit

IOS播放音频 AVAudioPlayer(实例)

1. AVFoundation Build Phases => Link Binary With Libraies => + => AVFoundation.framework => add firstviewcontroller.h C代码   #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface FirstViewController : UIViewContro

iOS播放器 - AVPlayer

之前有说到在播放器中一点点小技巧,现在正式记录一下AVPlayer. 这里主要是说明用AVPlayer做音乐播放器的功能实现,所以不介绍AVPlayer中那个图层类. 首先我们要声明一下播放器,这里有个小坑如果不是全局变量有时候不能播放,网上有一篇文章对这个BUG有个深入研究可以去百度一下,这里不做深入探讨. @property (nonatomic ,strong) AVPlayer *avPlayer; @property (nonatomic ,strong) AVPlayerItem *

iOS 播放器静音设置方法

介绍:整理的两种设置播放器播放静音的方法 一.MPVolumeView-设置音量值为0 1.获取到当前系统音量值(恢复音量时有用) volumeFloat = [self getVolume]; -(float) getVolume { //获取系统系统音量视图 MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(-1000, -100, 100, 100)]; volumeView.hidden

媒体播放器(AVAudioPlayer,MPMoviePlayerViewController)

概要 本章主要接到上次的文章讲音频播放,因为音频播放没有对应的播放视图控件,所以本例子自绘了一个简单的音乐播放界面,包括返回.暂停/播放.进度控制等. 结果展示 (暂停/播放 播放进度拖拉 返回) 流程概要 1.接上次的流程新建一个音乐播放类,模拟MPMoviePlayerViewController的实现: 2.播放音频的时使用IOS内置的类AVAudioPlayer,该类支持播放wav.mp3等格式的音乐,其对应的代理类为AVAudioPlayerDelegate: 3.对于这种初始化赋值代

iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码

iOS精选源码 全网最详细购物车强势来袭 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗) swift, UITableView的动态拖动重排CCPCellDragger 高仿书旗小说 Flutter版,支持iOS.Android NKAVPlayer 轻量级视频播放.控制,iOS AVPlayer RN 仿微信朋友圈 SwiftScan 二维码/条形码扫描.生成,仿微信.支付宝 Mac上解压Assets.car文件的小工具cartool tispr-card-stack - swift

iOS 播放器单例类

iOS音乐播放器(歌词自动滚动)

简单实现基于IOS的音乐播放器,并且带有歌词,随播放自动滚动,实现效果如下: 首先,需要建立一个解析歌词的类ZMPlrc,解析歌词主要就是把时间和对应的歌词分离出来,然后存储到数组中. ZMPlrc.h #import <Foundation/Foundation.h> @interface ZMPlrc : NSObject /** 时间 */ @property (nonatomic,strong)NSMutableArray *timeArray; /** 歌词 */ @property