[转][iPhone开发笔记]-音频播放/为按钮添加声音

从在U100上装好MAC后,断断续学习iPone APP的开发也已经有一段时间了,主要看的是<Beginning iPhone 3 Development Exploring the iPhone SDK>,里面的细节无一省略,正好适合我这个完全的门外汉.

斯坦福大学的教学视频应该也是非常不错的,但是实在还没时间看,看到很多人都有写过这个教学视频的学习笔记,大家可以去搜索看看.

这两天为朋友写个小程序,在实际中解决问题是学习写程序最好的方法.碰到问题,然后一一去解决问题,折腾到最后只好搁置或者超乎预计的快速搞定,过程都让人享受(好吧,也许我是站着说话不腰疼).

为按钮添加声音/播放音频,想象起来应该不算是难事,但在google上搜索了一下,没找到合适的完整教程,不得已只能靠着不多的英文提示来搞定,于是特别记录下来以抵抗遗忘的频率.

创建项目
  1. 1.从Xcode菜单选择”File” > “New Project”
  2. 2.从”iPhone OS” > “Application”中选择”View-based Application”,然后点”Choose”
  3. 3.将项目命名为“Sound”(项目名称任意),并按“Save”

如果是在一个现有的工程里面加入这个功能,比如我是在完成程序基本功能以后再来加入这个小功能以润色,就忽略这一步.

添加AVFoundation.frameWork

要实现为按钮添加声音/播放音频,要用到AVFoundation框架(AVFoundation.frameWork).于是,要先在项目里面添加这个框架进去.

  1. 1.在左侧的”Groups & Files”中,展开”Targets”
  2. 2.鼠标右键”Sound”(应该跟你的项目名称一致)
  3. 3.选择”Add”>”Existing Frameworks…”
  4. 4.在新出现的窗口左下方点击+按钮,然后选择”AVFounddation Framework”,并”Add”
  5. 5.确认在刚才的窗口下方的小窗口中出现”AVFounddation Framework”后,就可以关闭了

为项目添加声音文件
  1. 1.”Groups & Files”中,右键项目”Sound”,”Add”>”Existing Files…”
  2. 2.然后选择你准备好的音频文件,比如”click.wav”.

至此准备工作已经做好了,接下来就是添加代码了.

为按钮添加声音

1.在ViewController.h中添加代码:

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@interface SoundViewController : UIViewController<AVAudioPlayerDelegate> {

}
-(IBAction) Sound:(id)sender;

@end

2.在ViewController.m中添加Sound的方法:

-(IBAction) Sound:(id)sender{
NSString *path = [[NSBundle mainBundle] pathForResource:@”click” ofType:@”wav”];
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate=self;
[theAudio play];
}
如果你原本的按钮已经有一个Action了,那么其实只需要将上面{}中间的代码加入到你已经有的Action方法里面去就可以了.

播放音频

1.如果是要播放音频的话,在ViewController.h中添加代码:

#import <UIKit/UIKit.h>
#import<AVFoundation/AVAudioPlayer.h>

@interface AudioPlayerViewController :  UIViewController <AVAudioPlayerDelegate>{

AVAudioPlayer  *audioPlayer;
}
@end

2.在ViewController.m中取消ViewDidLoad的注解(删除/*  */),然后添加代码:

- (void)viewDidLoad{
[super  viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[NSString
stringWithFormat:@"%@/click.wav",  [[NSBundle mainBundle]  resourcePath]]];
NSError *error;
audioPlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops  = -1;   //-1代表使播放无限循环
if  (audioPlayer == nil)
NSLog([error  description]);
else
[audioPlayer  play];

}

- (void)dealloc
{
[audioPlayer  release];    //一定要记得释放
[super  dealloc];
}

到此就大功告成了.

还没有真正开始学习iPhone的时候,看到很多人都在问,完全没有程序基础的人可不可以学得会.我想说的是,没有人是生下来就有什么基础的,都是从什么都不会,到会一点,然后会更多,只要有心,坚持,不急不躁,任何时候都没有太晚.

太多人都看到iPhone App的商机,看到某些人一夜暴富…这没什么不对,但我们更需要明白”有心栽花花不开,无心插柳柳成阴”的道理.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值