小工具      在线工具  汉语词典  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


. . .

相关推荐

额外说明

Vim行号显示与隐藏、光标移动、文本替换

vim 行号的显示与隐藏 隐藏行号: 1.按一下esc键,并输入:(冒号),完成效果如下 2.输入set nonumber ,并按回车键,完成后即不显示行号 显示行号: 1.同样操作按一下esc键,并输入:(冒号),输入set number ,并按回车键

额外说明

intellij idea搭建python环境并运行tensorFlow示例程序

本文主要记录使用tensorFlow入门操作笔记,包括:intellij idea配置python运行环境,运行第一个样例程序,为后边学习tf打下基础 intellij idea配置python环境 首先要保证你的电脑上装有python,没有安装的百度

额外说明

Vue组件通讯(父传子和子传父)

文章目录 Vue组件通讯 一、父传子 二、子传父 总结 Vue组件通讯 记录父传子和子传父的方法 一、父传子 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

额外说明

Java网络 1.3 开发工具介绍

开发工具介绍 概述 开发工具 总结 概述 任何纯本文编辑器都能够编辑 html, 比如记事本, editplus, notepad++. 下面我们来看一些比较有名的专门制作网页的工具. 开发工具 DreamWeaver (Adobe 公司的产品, 这个软

额外说明

使用selenium实现QQ邮箱登录及发送邮件源码以及封装后的源码!

使用selenium实现QQ邮箱登录及发送邮件代码实现: import time from selenium import webdriver # executable_path参数是与你所用浏览器对应的浏览器引擎绝对路径 driver=webdriv

额外说明

Windows系统下的mklink指令

目录 一、前言 二、mklink指令(/d /h /j) 1. 查看mklink指令 2. mklink指令的语法 3. 关于参数 /d /h /j 的介绍 4. mklink使用实例 ① 不带参数 --> 为文件创建符号链接 ② /d --> 为目录创

额外说明

N只猴子围成一圈选大王,依次 1-7 循环报数,报到 7 的猴子被淘汰,直到最后一只猴子成 为大王。问,哪只猴子最后能成为大王?

十五个猴子围成一圈选大王,依次 1-7 循环报数,报到 7 的猴子被淘汰,直到最后一只猴子成 为大王。问,哪只猴子最后能成为大王? import java.util.ArrayList; import java.util.Scanner; /** *

额外说明

无心剑中译丁尼生《磨坊主千金》

The Miller’s Daughter 磨坊主千金 Alfred Tennyson 阿尔弗莱德·丁尼生 It is the miller’s daughter, And she is grown so dear, so dear, That I wo

额外说明

report Services 添加按日期进行筛选的参数

文件来源:http://technet.microsoft.com/zh-cn/library/aa337401(SQL.90).aspx 新建日期: 2006 年 7 月 17 日 通过在报表查询中包含开始日期参数和结束日期参数,可以指定用来限定从数据

ads via 小工具