音频播放

音频格式

注意: 硬件解码器一次只能对一个音频文件解码. 在实际应用中通常使用非压缩的音频格式(AIFF) 或者CAF音频格式,从而减低系统在音频解码上的消耗, 达到省电的目的

LLAudioTool.h文件

#import <Foundation/Foundation.h>

@interface LLAudioTool : NSObject

/**

*  播放音效

*

*  @param filename 音效文件名

*/

+ (void)playSound:(NSString *)filename;

/**

*  销毁音效

*

*  @param filename 音效文件名

*/

+ (void)disposeSound:(NSString *)filename;

@end

LLAudeoTool.m文件

#import "LLAudioTool.h"

#import <AVFoundation/AVFoundation.h>

@implementation LLAudioTool

// 字典: filename作为key, soundID作为value

// 存放所有的音频ID

static NSMutableDictionary *_soundIDDict;

+ (void)initialize

{

_soundIDDict = [NSMutableDictionary dictionary];

}

+ (void)playSound:(NSString *)filename

{

if (!filename) return;

// 1.从字典中取出soundID

SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];

if (!soundID) { // 创建

// 加载音效文件

NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:nil];

if (!url) return;

// 创建音效ID

AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID);

// 放入字典

_soundIDDict[filename] = @(soundID);

}

// 2.播放

AudioServicesPlaySystemSound(soundID);

}

+ (void)disposeSound:(NSString *)filename

{

if (!filename) return;

SystemSoundID soundID = [_soundIDDict[filename] unsignedLongValue];

if (soundID) {

// 销毁音效ID

AudioServicesDisposeSystemSoundID(soundID);

// 从字典中移除

[_soundIDDict removeObjectForKey:filename];

}

}

@end

时间: 2024-10-12 06:12:25

音频播放的相关文章

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

Android通过意图使用内置的音频播放器

如果实现一个音频文件的播放,那么在应用程序中提供播放音频文件功能的最简单的方式是利用内置的"Music(音乐)"应用程序的功能--即使用系统自带的或已安装好的音乐播放器来播放指定的音频文件. 本例比较简单,下面直接给出源代码: 布局文件activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/

IOS 音频播放

iOS音频播放 (一):概述 Audio Playback in iOS (Part 1) : Introduction 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=.=). 本篇为<iOS音频播放>系列的第一篇,主要将对iOS下实现音频播放的方法进行概述. 基础 先来简单了解一

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音

IOS开发之音效/音频播放

音频播放: 1.音效播放 2.音乐播放 (1)音频播放 : <1>系统声音 短小的声音 使用的框架 AudioToolBox <2>1.AudioServicesPlaySystemSound 播放系统声音 2.AudioServicesPlayAlertSound播放系统声音有震动 <3>使用: 1.声明声音的ID  通过声音的id来区分是哪一个音效  无符号整形 2.创建声音的服务 (告诉系统有一个可以使用的soundID) 需要声音文件路径和声音的ID 3.播放声

关于iOS网络音频播放的一些详解

在日常的iOS开发中,我们通常会遇到媒体播放的问题,XCode中已经为我们提供了功能非常强大的AVFoundation框架和MediaPlayer框架.其中AVFoundation框架中的AVAudioPlayer主要用于播放本地音频,也可以播放网络音频,但是需要先将网络数据转化为data数据,用户体验较差,所有苹果公司提供了功能强大的AVPlayer用于播放网络音频(既流媒体),效果和可控性都比较好,现在就重点介绍下AVPlayer中网络音频的播放: 下边是一个简单的实例: OK,一个简单地音

求教,是否直接可以调用android的libmedia.so库进行音频播放

问题描述 问题: 在C++代码中是否可以调用android系统的libmedia.so, 我用C++写了一个测试程序,调用了libmedia.so中mediaplayer.cpp中的方法进行音频播放,可以通过编译,也可以在android系统的机顶盒中执行,但是prepare()方法一直被阻塞,求大神指点该如何解决啊,给点思路好吗?以下是测试代码: #include <stdio.h> #include <stdlib.h> #include <mediaplayer.h>

iOS音频播放 (一):概述 转

今天看到非常好的介绍音频开发的文章,转载一下 原文地址:http://msching.github.io/blog/2014/07/07/audio-in-ios/ 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=.=). 本篇为<iOS音频播放>系列的第一篇,主要将对iOS下实现音

Android音频文件浏览+音频播放

该Demo运行后,会显示所有你sd卡上的音乐文件列表, 并可以点击列表选择某一首歌曲进行播放. 运行效果: 点击download出现: 然后点击歌曲调用系统播放器播放. 源代码: activity_audio_browser.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tool

音频播放、录音、视频播放、拍照、视频录制-b

随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePickerController拍照