iphone开发之多媒体播放参考源码

本文介绍了如何在iOS应用中使用AudioToolbox和AVFoundation框架进行多媒体播放。通过AudioToolbox,可以播放不超过30秒的系统声音,而AVFoundation适用于播放更长的音频文件和压缩音频。文中给出了具体的代码示例,包括注册和播放系统声音、使用AVAudioPlayer播放mp3文件,以及利用MPMoviePlayerController播放电影文件。此外,还提到了如何实现后台播放音乐和处理播放中断。
摘要由CSDN通过智能技术生成

OS sdk中提供了很多方便的方法来播放多媒体。本文将利用这些SDK做一个demo,来讲述一下如何使用它们来播放音频文件。

AudioToolbox framework

    使用AudioToolbox framework。这个框架可以将比较短的声音注册到 system sound服务上。被注册到system sound服务上的声音称之为 system sounds。它必须满足下面几个条件。

1 播放的时间不能超过30

2、数据必须是 PCM或者IMA4流格式

3、必须被打包成下面三个格式之一:Core Audio Format (.caf), Waveform audio (.wav), 或者 Audio Interchange File (.aiff)

    声音文件必须放到设备的本地文件夹下面。通过AudioServicesCreateSystemSoundID方法注册这个声音文件,AudioServicesCreateSystemSoundID需要声音文件的urlCFURLRef对象。看下面注册代码:

#import <AudioToolbox/AudioToolbox.h>
@interface MediaPlayerViewController : UIViewController
{
   
IBOutlet UIButton *audioButton;
    SystemSoundID shortSound;
}

- (id)init
{
   
self = [super initWithNibName:@"MediaPlayerViewController" bundle:nil];
   
if (self) {
       
// Get the full path of Sound12.aif
        NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"Sound12"
                                                             
ofType:@"aif"];
       
// If this file is actually in the bundle...
        if (soundPath) {
 
           // Create a file URL with this path
            NSURL *soundURL = [NSURL fileURLWithPath:soundPath];
       
            // Register sound file located at that URL as a system sound
            OSStatus err = AudioServicesCreateSystemSoundID((CFURLRef)soundURL,
                                                            &shortSound);
            if (err != kAudioServicesNoError)
               
NSLog(@"Could not load %@, error code: %d", soundURL, err);
       
}
    }
    return self;
}

这样就可以使用下面代码播放声音了:

- (IBAction)playShortSound:(id)sender
{
   
AudioServicesPlaySystemSound(shortSound);
}

使用下面代码,还加一个震动的效果:

- (IBAction)playShortSound:(id)sender
{
   
AudioServicesPlaySystemSound(shortSound);
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

AVFoundation framework

   对于压缩过Audio文件,或者超过30秒的音频文件,可以使用AVAudioPlayer类。这个类定义在AVFoundation framework中。

    下面我们使用这个类播放一个mp3的音频文件。首先要引入AVFoundation framework,然后MediaPlayerViewController.h中添加下面代码:

#import <AVFoundation/AVFoundation.h>
@interface MediaPl

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值