• 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

  • 相关阅读:
    CDQ分治
    [noip模拟赛2017.7.15]
    [noip模拟赛2017.7.11]
    [noip模拟赛2017.7.10]
    [noip模拟赛2017.7.7]
    [noip模拟赛2017.7.6]
    [noip模拟赛2017.7.4]
    回文检测
    mapreduce引用第三方jar
    Spark安装和配置
  • 原文地址:https://www.cnblogs.com/riasky/p/3509193.html
Copyright © 2020-2023  润新知