IPhone之播放系统声音

 IPhone可以将相关音乐,做为系统音乐播放出来。也可以直接调震。

  图片不能上传了。(可能是新浪出的问题,以后补图)

IPhone之播放系统声音

 

  首先,需要引用 AudioToolbox.framework这个包。

 

 

  然后代码如下:

#import <UIKit/UIKit.h>

#import <AudioToolbox/AudioToolbox.h>

 

 

 

@interface View22 : UIViewController <UITableViewDelegate, UITableViewDataSource>

{

 


}

 


@end

 

 

 

 

 

 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"SoundCell";

   

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

    }

 


if (indexPath.row==0) {

cell.textLabel.text=@"振动";

}

else if(indexPath.row==1)

{

cell.textLabel.text=@"系统铃声";

}

return cell;

 


}

void SystemSoundsDemoCompletionProc (

SystemSoundID  soundID,

void           *clientData)

{

AudioServicesDisposeSystemSoundID (soundID);

};

 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


[tableView deselectRowAtIndexPath:indexPath animated:YES];


SystemSoundID soundID;


OSStatus err = kAudioServicesNoError;

if (indexPath.row == 0) {


soundID = kSystemSoundID_Vibrate;

} else {

// 查找音乐文件

NSString *cafPath =

[[NSBundle mainBundle] pathForResource:@"2" ofType:@"caf"];

NSURL *cafURL = [NSURL fileURLWithPath:cafPath];

err = AudioServicesCreateSystemSoundID((CFURLRef) cafURL, &soundID);

}

 


if (err == kAudioServicesNoError) {


err = AudioServicesAddSystemSoundCompletion

(soundID,

NULL,

NULL,

SystemSoundsDemoCompletionProc,

self

);

AudioServicesPlaySystemSound (soundID);

}

if (err != kAudioServicesNoError) {

CFErrorRef error = CFErrorCreate(NULL, kCFErrorDomainOSStatus, err, NULL);

NSString *errorDesc = (NSString*) CFErrorCopyDescription (error);

UIAlertView *cantPlayAlert =

[[UIAlertView alloc] initWithTitle:@"Cannot Play:"

  message: errorDesc

  delegate:nil

cancelButtonTitle:@"OK"

otherButtonTitles:nil];

[cantPlayAlert show];

[cantPlayAlert release];

[errorDesc release];

CFRelease (error);

}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值