ios简单的音频播放

由于之前没有做过音频类的项目, 所以这次自己写了一个音频的小Demo能实现暂停播放循环等功能. 直接看代码:

// 我使用的AVAudioPlayer, 首先先导入库文件, 写上头文件,签上代理
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
typedef NS_ENUM(NSInteger, playStatus){ // 这个枚举用来控制暂停和播放的切换
    playStatusNo,
    playStatusYes,

};
@interface ViewController ()<AVAudioPlayerDelegate>
@property (nonatomic, assign) playStatus staus;
@property (nonatomic, retain) UISlider *slider; // 进度条
@property (nonatomic, retain) UILabel *timeLabel;
@end

  

// 至于控件创建我就不一一写出来了 到这步是初始化播放器
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"]] error:nil];
    _player.delegate = self;

    [_player prepareToPlay]; //分配播放所需的资源,并将其加入内部播放队列 (预播放)

  

 //  用NSTimer来监控音频播放进度

    //  预订一个Timer,设置一个时间间隔。表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1 self表发送的对象 useInfo此参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器 repeat 为YES时,定时器会不断循环直至失效或被释放,当NO时,定时器会循环发送一次就失效。
    _time = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateslider) userInfo:nil repeats:YES];

// 播放次数
    UISwitch *loop = [[UISwitch alloc] initWithFrame:CGRectMake(100, 230, 60, 40)];
    [loop addTarget:self action:@selector(loopYesOrNo) forControlEvents:UIControlEventValueChanged];
    loop.on = NO; // 默认状态不打开

    [self.view addSubview:loop];

  

// 实现点击按钮播放暂停
- (void)buttonClickStart
{

    if (self.staus == playStatusYes) {
        self.staus = playStatusNo;
        [_player pause]; // 暂停播放;
        [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateMusicTimeLabel) userInfo:self repeats:
         YES];
        [_button setTitle:@"暂停播放" forState:UIControlStateNormal];
    }
    else
    {
        [_player play]; // 开始播放
        self.staus = playStatusYes;
        [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateMusicTimeLabel) userInfo:self repeats:
         YES];

        [_button setTitle:@"正在播放" forState:UIControlStateNormal];
    }
}
// 播放时间更新
-(void)updateMusicTimeLabel{
    if ((int)self.player.currentTime % 60 < 10) {
        self.timeLabel.text = [NSString stringWithFormat:@"%d:0%d",(int)self.player.currentTime / 60, (int)self.player.currentTime % 60];
    } else {
        self.timeLabel.text = [NSString stringWithFormat:@"%d:%d",(int)self.player.currentTime / 60, (int)self.player.currentTime % 60];
    }

}

  

// 循环播放
- (void)loopYesOrNo
{
    _player.numberOfLoops = -1; // 这里 正数就是播放几次 -1 就是无限循环
}
// 进度条
- (void)updateslider
{
    self.slider.value = self.player.currentTime;

}
// 拖动进度条改变播放时间和播放位置
- (void)sliderValueChanged
{
    [self.player stop];

    [self.player setCurrentTime:self.slider.value];

    [self.player prepareToPlay];

    [self.player play];

}

  

其实内容还有很多类似的, 比如说音量的大小和进度条的定义方式差不多而且更简单, 也可以加上静音开关之类的和循环的开关类似.

时间: 2024-10-21 04:22:31

ios简单的音频播放的相关文章

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音

简单mp3音频播放器的实现

本篇主要介绍使用Mediaplayer实现mp3简易音乐播放器,程序运行界面如下 下面是代码实现,因为代码比较简单,注释已经比较明确了. public class PlayActivity extends Activity implements OnClickListener { private EditText filenameText; // 音频播放的主要类 private MediaPlayer mediaPlayer; private String filename; // 记录播放位

iOS开发之音频播放、录音

iOS的音频播放可以分为短音频播放(例如:音效等点缀音频)和长音频播放(例:音乐等主音频).前者不需要对进度.循环等进行控制,而后者需要精确的控制.在iOS中播放这两种音频分别使用AudioToolbox.framework和AVFoundation.framework来完成. 短音频音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service).System Sound Service是一

iOS开发系列--音频播放、录音、

音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制.在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放. 音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(

iOS开发之 音频播放

音频播放 1.介绍 - 功能介绍 用于播放比较长的音频.说明.音乐 ,使用到的是AVFoundation - 框架介绍 * AVAudioPlayer * 初始化: 注意 : (3)必须声明全局变量的音乐播放对象.或者是属性的音乐播放对象  才可以播放 (4)在退出播放页面的时候 一定要把播放对象置空  同时把delegate置空 导入框架:#import <AVFoundation/AVFoundation.h> 声明全局变量 @interface ViewController ()<

iOS 简单的音频

依然是直接贴今天练习的代码 // // ViewController.m // 尝试音效 // // Created by chen on 15/3/18. // Copyright (c) 2015年 lanrw. All rights reserved. // #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController () @property (n

Js实现简单的音频播放

现效果如下: 由于我这边不需要其他按钮,就没写 数据是由后台提供,在这做了个小列子 后台代码 public ActionResult MusicPlayer(int musicId=0) { MusicPlayerModel model = new MusicPlayerModel(); switch (musicId) { default: model.MusicName = "Believe-动画<海贼王>"; model.CoverImg = "/Conte

IOS 音频播放

iOS音频播放 (一):概述 Audio Playback in iOS (Part 1) : Introduction 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=.=). 本篇为<iOS音频播放>系列的第一篇,主要将对iOS下实现音频播放的方法进行概述. 基础 先来简单了解一

关于iOS网络音频播放的一些详解

在日常的iOS开发中,我们通常会遇到媒体播放的问题,XCode中已经为我们提供了功能非常强大的AVFoundation框架和MediaPlayer框架.其中AVFoundation框架中的AVAudioPlayer主要用于播放本地音频,也可以播放网络音频,但是需要先将网络数据转化为data数据,用户体验较差,所有苹果公司提供了功能强大的AVPlayer用于播放网络音频(既流媒体),效果和可控性都比较好,现在就重点介绍下AVPlayer中网络音频的播放: 下边是一个简单的实例: OK,一个简单地音