zoukankan      html  css  js  c++  java
  • IOS开发中AVFoundation中AVAudioPlayer的使用

    IOS开发中如何调用音频播放组件

    1、与音频相关的头文件等都在AVFoundation.h中,所以第一步是添加音频库文件:

    #import <AVFoundation/AVFoundation.h>

    2、先找一段要播放的音频文件,我这里找到是一个mp3文件,然后添加到项目中:

    3、使用NSBundle获取这个文件并转化成NSData类型:

     NSString *filepath = [[NSBundle mainBundle]pathForResource:@"bbb" ofType:@"mp3"];
     NSData *data = [[NSData data]initWithContentsOfFile:filepath];

    4、声明一个全局变量的AVAudioPlayer对象player:

    @interface ViewController (){
        AVAudioPlayer *player;
    }
    
    @end

    5、初始化全局变量player:

     player = [[AVAudioPlayer alloc]initWithData:data error:nil];

    6、添加一个开始、暂停播放的按钮:

       UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)];
        myBtn.backgroundColor = [UIColor orangeColor];
        myBtn.layer.cornerRadius = 20;
        myBtn.layer.masksToBounds = YES;
        myBtn.enabled = YES;
        [myBtn setTitle:@"开始播放" forState:UIControlStateNormal];
        [myBtn addTarget:self action:@selector(myBtnAction:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:myBtn];

    7、编写按钮的方法,点击按钮之后检测player是否在播放,如果在播放,就停止播放,如果未播放,就开始播放,其中停止播放和开始播放调用的是player对象的play方法和pause方法:

    -(void)myBtnAction :(UIButton*)sender{
        
        if (player.playing) {
            [player pause];
            [sender setTitle:@"开始按钮" forState:UIControlStateNormal];
        }else{
           [player play];
            [sender setTitle:@"暂停按钮" forState:UIControlStateNormal];
        }
    }

    8、添加一个音量滑块,音量滑块添加一个方法volumeslidervaluechange:,当值改变时触发这个方法:

    //    音量滑块
        UISlider *volumeslider = [[UISlider alloc]initWithFrame:CGRectMake(20, 330, 374, 20)];
        volumeslider.value = 0.9;
        [volumeslider addTarget:self action:@selector(volumeslidervaluechange:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:volumeslider];

    9、实现volumeslidervaluechange:方法,当滑块值改变时,改变音频播放器的音量大小:

    -(void)volumeslidervaluechange:(UISlider*)sender{
        player.volume = sender.value;
    }

    模拟运行并点击按钮就可以听到美妙的音乐了:

     以下是完整代码:

    //
    //  ViewController.m
    //  ceshi
    //
    //  Created by mac on 16/5/24.
    //  Copyright © 2016年 mzw. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    
    @interface ViewController (){
        AVAudioPlayer *player;
    }
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    //    设置当前view背景色
        self.view.backgroundColor = [UIColor lightGrayColor];
        
        
    //    获取项目树中的音频文件
        NSString *filepath = [[NSBundle mainBundle]pathForResource:@"bbb" ofType:@"mp3"];
    //    把获取的音频文件转化为nsdata类型
        NSData *data = [[NSData data]initWithContentsOfFile:filepath];
        
    //    初始化一个音频播放器
        player = [[AVAudioPlayer alloc]initWithData:data error:nil];
    
        
    //    创建一个button,点击button开始或暂停音频播放器的播放
        UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)];
        myBtn.backgroundColor = [UIColor orangeColor];
        myBtn.layer.cornerRadius = 20;
        myBtn.layer.masksToBounds = YES;
        myBtn.enabled = YES;
        [myBtn setTitle:@"开始播放" forState:UIControlStateNormal];
        [myBtn addTarget:self action:@selector(myBtnAction:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:myBtn];
        
        
        //    音量滑块
        UISlider *volumeslider = [[UISlider alloc]initWithFrame:CGRectMake(20, 330, 374, 20)];
        volumeslider.value = 0.9;
        [volumeslider addTarget:self action:@selector(volumeslidervaluechange:) forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:volumeslider];
        
    
    
    }
    
    
    -(void)myBtnAction :(UIButton*)sender{
    //    如果音频播放器处于播放状态,点击后就暂停播放,如果处于未播放状态,就开始播放
        if (player.playing) {
            [player pause];
            [sender setTitle:@"开始按钮" forState:UIControlStateNormal];
        }else{
           [player play];
            [sender setTitle:@"暂停按钮" forState:UIControlStateNormal];
        }
    }
    
    -(void)volumeslidervaluechange:(UISlider*)sender{
        player.volume = sender.value;
    }
    
    
    @end

     

  • 相关阅读:
    SQL查询语句大全集锦
    SQL Union和SQL Union All用法
    SQL Server中替换函数STUFF、replace的使用
    oscache的使用(例子)
    SQL CURSOR 游标 存储过程
    折腾iPhone的生活——AirDrop的使用
    折腾iPhone的生活——通过设置使iPhone更省电
    折腾iPhone的生活——iPhone 5s 开启 assistive touch 后卡顿的问题
    vimium快捷键列表
    在MacOSX下使用Github管理Xcode代码
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5522650.html
Copyright © 2011-2022 走看看