原文地址: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);
}
}
留言列表