• 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

  • 相关阅读:
    css技巧---电子表体字体引入
    解决for循环,暂停3s,在执行下次循环
    node 将汉字转化为拼音
    针对CMS中的tag标签理解
    博客园上传markdown文件方法
    正则表达式匹配非某字符串的情况
    ubuntu 20.04 MySQL的workbench无法连接
    在ubuntu20.04上使用Navicat客户端
    如何提升git clone的速度
    jenkins出现故障,报错HTTP ERROR 403 No valid crumb was included in the request
  • 原文地址:https://www.cnblogs.com/riasky/p/3509130.html
Copyright © 2020-2023  润新知