美文网首页Swift&Objective-C
IOS音量按钮操作踩坑之旅

IOS音量按钮操作踩坑之旅

作者: 水中沚_b078 | 来源:发表于2017-08-11 16:13 被阅读111次

最近一段时间在研究IOS开发需要用到音量按钮控制一些操作, 在网上找了一个开源的库 RBVolumeButtons , 一开始的时候用的好好的,昨天打开项目运行应用的时候,界面的左上角位置出现了AirPlay图标,找了老半天,终于让我找到了是RBVolumeButtons这个库的原因一旦添加了音量按钮操作控制,就会出现,因此对源码进行了一下研究.看到了如下这样一段代码

-(id)init
{
   self = [super init];
   if( self )
   {
      self.isStealingVolumeButtons = NO;
      self.suspended = NO;

      CGRect frame = CGRectMake(0, -10, 1, 1);
      self.volumeView = [[MPVolumeView alloc] initWithFrame:frame];
   }
   return self;
}

在这里讲MPVolumeView添加到了界面中,但是他的布局是 (0,-10,1,1)还不足以将其隐藏起来,因此将y左边调整到更大的一个值比如30,果然不见了.但是这种解决方案还是不够完美.因此找到了更好的解决方法 .
self.volumeView = [[MPVolumeView alloc] initWithFrame:frame];后调用如下代码

// 设置这句的原因是隐藏AirPlay按钮
[((MPVolumeView*)(self.volumeView)) setShowsVolumeSlider:NO];

接下来继续玩代码,之前音量控制的时候有时候会出现系统音量调节界面.实验了一下分为两种情况

  1. 设备后台有背景音乐正在播放,系统音量提示会隐藏掉
  2. 设备后台没有背景音乐播放,系统音量提示会自动呈现出来

下面是解决方法,在每次按键事件中调用下面这段代码,就不会再显示系统音量提示页面了.

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
if (audioSession.otherAudioPlaying) {
    [audioSession setActive:NO error:&error];
} else {
    [audioSession setActive:YES error:&error];
}

相关文章

  • IOS音量按钮操作踩坑之旅

    最近一段时间在研究IOS开发需要用到音量按钮控制一些操作, 在网上找了一个开源的库 RBVolumeButtons...

  • iOS Weex 踩坑之旅

    转项目管理也有大半年了,最近自己玩了一下weex,下面开始入坑: 网上有大把的资料,是关于weex集成的,...

  • Xcode10和iOS12踩坑

    Xcode10和iOS12踩坑

  • iOS10的适配

    每次出了新系统,必然要踩很多坑,这次来踩一踩iOS10的坑吧。 一、证书问题 直接选择Automatically ...

  • RecyclerView ItemTouchHelper 拖动排

    RecyclerView ItemTouchHelper 踩坑之旅 要实现的功能: recyclerview it...

  • 踩坑之旅

    > db.user.update({"parentuser":"wyt1314"},{$set:{"parentu...

  • 踩坑之旅

    1.启动项目报错org.springframework.beans.factory.UnsatisfiedDepe...

  • iOS项目中误删文件然后还原导致的问题

    本人初学的iOS,由于自己摸索,导出踩坑,特此随笔几下我踩过的坑,老鸟就不用点进来了。 一、加强对这个坑的认识,毕...

  • ida 7.0 for mac 调试APP

    ida 7.0 发布了,拥有调试iOS应用的能力,自己尝试了一下,踩了很多坑,这方面资料太少了,按照官方文档操作也...

  • iOS13适配

    参考: iOS13 适配踩坑 - 持续更新 iOS 13 适配要点总结 iOS 13 适配要点总结 1、prese...

网友评论

    本文标题:IOS音量按钮操作踩坑之旅

    本文链接:https://www.haomeiwen.com/subject/rlfrrxtx.html