zoukankan      html  css  js  c++  java
  • iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件

    iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件

    步骤

    • 第一步:在 Project - TARGETS - Project名 - Build Phases - Link Binary With Libraries,添加 AVFoundation.framework。
    • 第二步:创建一个 UIViewController 的子类 PlayerViewController。
    • 第三步:在 PlayerViewController 中添加一个属性 AVAudioPlayer。
    • 第四步:在 PlayerViewController 的 viewDidLoad 方法中实现最主要的代码。

    关键代码

    .h

    #import <UIKit/UIKit.h>
    #import <AVFoundation/AVFoundation.h>
    
    @interface PlayViewController: UIViewController
    
    @property (strong, nonatomic) AVAudioPlayer *player;
    
    @end
    

    .m

    #import "PlayerViewController.h"
    
    @interface PlayerViewController ()
    
    @end
    
    @implementation PlayerViewController
    
    - (void) viewDidLoad
    {
        [super viewDidLoad];
    
        AVAudioSession *session = [AVAudioSession sharedInstance];
        [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
        [audioSession setActive:YES error:nil];
    
        NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"rem" ofType:@"wav"];
        NSURl *audioUrl = [NSURL fileURLWithPath:audioPath];
        NSError *playerError;
        _player = [[AVAudioPlayer alloc] initWithContentsOfURL:audioUrl error:&playerError];
        if (_player === NULL)
        {
            NSLog(@"fail to play audio :(");
            return;
        }
    
        [_player setNumberOfLoops:-1];
        [_player setVolume:1];
        [_player prepareToPlay];
        [_player play];
    }
    
    - (void) didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    @end
    

    几个重要的点:

    • 必须要用 AVAudioSession,否则木有声音啊。
    • 不要把 AVAudioPlayer 当做局部变量(具体说在这个例子中,不要在 viewDidLoad 中定义)。
    • 要找好路径,这里用 mainBundle,不要搞错。

    源码

    http://download.csdn.net/detail/prevention/6816959

    -

    转载请注明来自:http://blog.csdn.net/prevention

  • 相关阅读:
    博客开通第77天
    guzzlephp使用教程
    Mac下php70memcache安装
    opcache开启和关闭
    php的getimagesize方法详解
    Yii2框架解剖
    AES加密:PHP与Java互通问题
    公司网页监控到的各种不能识别的浏览器userAgent,都是些什么啊
    document.write
    js模版引擎v6注解
  • 原文地址:https://www.cnblogs.com/riasky/p/3509193.html
Copyright © 2011-2022 走看看