iOS扬声器和听筒模式的切换以及距离传感器红外感应的设置

该博客介绍了如何在iOS应用中控制音频播放路径,包括切换扬声器和听筒模式,并利用距离传感器进行红外感应,实现当用户靠近手机时自动切换到听筒播放,远离时切换到扬声器播放的功能。
摘要由CSDN通过智能技术生成

#import "MyAudioManager.h"

#import <AVFoundation/AVFoundation.h>

#import "NSStringEx.h"


@interface MyAudioManager()<AVAudioPlayerDelegate>


@property (nonatomic, strong) AVAudioSession *session;

@property (nonatomic, strong) AVAudioPlayer *player;

@property (nonatomic, strong) AVAudioRecorder *recorder;

@property (nonatomic, strong) NSURL *recordFileURL;

@property (nonatomic, copy)   NSString *recordUrlKey;

@property (nonatomic, copy) didPlayFinish finishBlock;


@end


@implementation MyAudioManager


+ (instancetype)sharedInstance

{

    static MyAudioManager *_sharedInstance = nil;

    static dispatch_once_t onceToken;

    

    dispatch_once(&onceToken, ^{

        _sharedInstance = [[self alloc ] init];

        [_sharedInstance setproximity];

    });

    return _sharedInstance;

}



#pragma mark --设置距离传感器

- (void)setproximity{

    self.session = [AVAudioSession sharedInstance];

    NSError *sessionError = nil;

    

    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wdeprecated-declarations"

    AudioSessionSetProperty (

                             kAudioSessionProperty_OverrideAudioRoute,

                             sizeof (audioRouteOverride),

                             &audioRouteOverride

                             );

    UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;

    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值