小工具      在线工具  汉语词典  css  js  c++  java

1.初始化语音模块

    if (!_voiceManager)
    {
        self.voiceManager = [[LJVoiceManager alloc]init];
        [self.voiceManager initLJVoiceManager];
    }

2. 玩

[self.voiceManager playAudio];


3. 以下是我封装的一个语音播放的类

#import "LJVoiceManager.h"

@interface LJVoiceManager ()<AVAudioPlayerDelegate>

@property (nonatomic, strong)AVAudioPlayer *avAudioPlayer;

@end

@implementation LJVoiceManager

#pragma mark -- dealloc
- (void)dealloc
{
    
}

#pragma mark -- 初始化
- (void)initLJVoiceManager
{
    //从budle路径下读取音频文件
     NSString *voicePathString = [[NSBundle mainBundle] pathForResource:@"Music" ofType:@"mp3"];
    
    if (voicePathString.length > 0)
    {
        //把音频文件转换成url格式
        NSURL *voiceUrl = [NSURL fileURLWithPath:voicePathString];
        //初始化音频类 并且添加播放文件
        self.avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:voiceUrl error:nil];
        //设置代理
        self.avAudioPlayer.delegate = self;
        
        //设置初始音量大小
        self.avAudioPlayer.volume = 0.3;//1:声音最大
        
        //设置音乐播放次数  -1为一直循环
        //self.avAudioPlayer.numberOfLoops = -1;
        
        //预播放
        [self.avAudioPlayer prepareToPlay];
    }
}

#pragma mark -- 播放设置
//播放
- (void)playAudio
{
    //如果在播放,先停止,再播放
    if ([self.avAudioPlayer isPlaying])
    {
        [self.avAudioPlayer stop];
    }
    [self.avAudioPlayer play];
}

//暂停
- (void)pauseAudio
{
    [self.avAudioPlayer pause];
}

//停止
- (void)stopAudio
{
    self.avAudioPlayer.currentTime = 0;  //当前播放时间设置为0
    [self.avAudioPlayer stop];
}

#pragma mark -- AVAudioPlayerDelegate
//播放完成时调用的方法
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    CHDebugLog(@"audioPlayerDidFinishPlaying---%hhd",flag);
    
    //如果播放完毕,则停止播放器
    if (flag)
    {
        if ([self.avAudioPlayer isPlaying])
        {
            [self.avAudioPlayer stop];
        }
    }
}

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error
{
    CHDebugLog(@"audioPlayerDidFinishPlaying---%@",error);
    
    if ([self.avAudioPlayer isPlaying])
    {   //如果发生错误,也停止播放
        [self.avAudioPlayer stop];
    }
}

//当程序被应用外部打断之后,重新回到应用程序的时候触发。在这里当回到此应用程序的时候,继续播放音乐。
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player
{
    [self.avAudioPlayer play];
}

@end


. . .

相关推荐

额外说明

python在windows环境下安装open cv读取tiff文件

windows环境下python安装open cv 读取tiff文件 背景 天池数据大赛《广东政务数据创新大赛—应用创新赛》,首先需要解决第一关,就是查看比赛给出的两个tiff格式的数据文件。本身没有地理信息专业的背景,所以压根就没打算用那些专业的gis

额外说明

WSL2下使用VSCode编辑编译源码

1. 安装WSL2 2. windows下安装VSCode 3. VSCode安装插件Remote Development 北京时间2019年5月3日,在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新时代!这

额外说明

Java快速开发框架_若依——Ruoyi-SpringCloud版本- 8. 新增业务项目

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

linux(ubuntu/debx(ubuntu/debian)的软件相关操作

关于权限: 对软件操作时常会涉及到权限,有两种方法: sudo -s切换到管理员账户 在每个命令前加sudo提权 关于apt和apt-get: apt是apt-get的进化版,apt加了进度条,另外apt还加入了apt-cache和apt-config的

额外说明

【yolov5】原理详解

一.模型框架 yolov5的6.0版 二.对Yolov5的描述 Yolov5的模型主要由 输入、Backbone、Neck、Head、输出 五部分组成。 2.1 输入 输入 640x640x3 2.2 backbone Backbone:负责提取输入

额外说明

解决nohup java -jar xxx.jar报出[1]+ Exit 1的错误:Unable to access jarfile xxx.jar和PersistenceException异常

文章目录 1. 复现问题 2. 分析问题 2.1 Unable to access jarfile xxx.jar 2.1.2 分析Unable to access jarfile xxx.jar 2.1.2 解决Unable to access jar

额外说明

Leaflet 加载超图发布的投影图层报错 Uncaught No projection definition for code XXXX

错误  Uncaught No projection definition for code 自定义坐标 原因  参考链接中提示超图 leaflet 插件默认引入了 proj4 插件,从而引发多次引入错误。 解决方案 如果必须使用 proj4 插件,可按

额外说明

kubernetes集群节点多网卡,calico/flannel组件如何指定网卡

kubernetes集群节点多网卡,calico/flannel组件如何指定网卡 1、calico如果有节点是多网卡,所以需要在deploy的env指定内网网卡 spec: containers: - env: - name: IP

额外说明

PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享

通过使用 PostgreSQL 的 C 函数接口,我们可以编写用 C 语言实现的函数,并将其集成到数据库中。这些函数可以在 SQL 查询中像其他内置函数一样被调用,从而扩展 PostgreSQL 的功能。 C 函数在某些情况下可以提供比 SQL 函数更高

额外说明

在Mac上直接使用Python 2.7版本

如果你使用的是Mac并且系统大于或等于OS X 10.8,那么恭喜你,系统自带了Python 2.7或以上版本。 检查系统是否自带python。可以直接在控制台输入python。如果有python的基本信息,证明系统已经默认安装了python(如下图)。

ads via 小工具