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

     

    iOS Dev (21) 用 AVPlayer 播放一个本地音频文件

    前言

    这篇文章与上一篇极其相似,要注意别看错。

    步骤

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

    关键代码

    .h

    #import <UIKit/UIKit.h>
    #import <AVFoundation/AVFoundation.h>
    
    @interface PlayViewController: UIViewController
    
    @property (strong, nonatomic) AVPlayer *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 = [[AVPlayer alloc] initWithContentsOfURL:audioUrl error:&playerError];
        if (_player === NULL)
        {
            NSLog(@"fail to play audio :(");
            return;
        }
    
        [_player setVolume:1];
        [_player play];
    }
    
    - (void) didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    @end
    

    几个重要的点:

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

    源码

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

    -

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

  • 相关阅读:
    架构基础-容量评估
    golang版本实现版本号比较-从易到解决bug
    数组模拟栈
    稀疏数组
    密码生成器
    01-gopsutil包使用
    02从零开始学习GO语言--标识符、关键字、变量和常量
    Go语言简介
    从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
    ES6学习总结之 Module
  • 原文地址:https://www.cnblogs.com/riasky/p/3509130.html
Copyright © 2011-2022 走看看