- 浏览: 87584 次
- 性别:
- 来自: 昆明
方法1:
在applicationDidFinishLaunching函数里添加
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(volumeChanged:)
name:@"AVSystemController_SystemVolumeDidChangeNotification"
object:nil];
- (void)volumeChanged:(NSNotification *)notification
{
float volume =
[[[notification userInfo]
objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
floatValue];
DDLogVerbose(@"current volume = %f", volume);
}
弊端:当app进入后天后,依然会监听到volume的变化
2. 对 AudioSession 添加volume变化的 listener, 可以放在startAudioSession函数里
//add a listener for Outputvolume
AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume ,
volumeListenerCallback,
self
);
void volumeListenerCallback (
void *inClientData,
AudioSessionPropertyID inID,
UInt32 inDataSize,
const void *inData
){
const float *volumePointer = inData;
float volume = *volumePointer;
NSLog(@"volumeListenerCallback %f", volume);
}
3. 获取当前的volume
float volume = 0.0;
UInt32 dataSize = sizeof(float);
OSStatus status = AudioSessionGetProperty (kAudioSessionProperty_CurrentHardwareOutputVolume,
&dataSize,
&volume);
在applicationDidFinishLaunching函数里添加
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(volumeChanged:)
name:@"AVSystemController_SystemVolumeDidChangeNotification"
object:nil];
- (void)volumeChanged:(NSNotification *)notification
{
float volume =
[[[notification userInfo]
objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"]
floatValue];
DDLogVerbose(@"current volume = %f", volume);
}
弊端:当app进入后天后,依然会监听到volume的变化
2. 对 AudioSession 添加volume变化的 listener, 可以放在startAudioSession函数里
//add a listener for Outputvolume
AudioSessionAddPropertyListener(kAudioSessionProperty_CurrentHardwareOutputVolume ,
volumeListenerCallback,
self
);
void volumeListenerCallback (
void *inClientData,
AudioSessionPropertyID inID,
UInt32 inDataSize,
const void *inData
){
const float *volumePointer = inData;
float volume = *volumePointer;
NSLog(@"volumeListenerCallback %f", volume);
}
3. 获取当前的volume
float volume = 0.0;
UInt32 dataSize = sizeof(float);
OSStatus status = AudioSessionGetProperty (kAudioSessionProperty_CurrentHardwareOutputVolume,
&dataSize,
&volume);
发表评论
-
HOW TO ADD PHOTOS TO THE IPHONE SIMULATOR
2012-12-25 15:49 735Building an app that needs to a ... -
截取部分图片并显示
2012-09-14 11:15 828src : http://marshal.easymorse ... -
va_start和va_end使用详解
2012-09-07 11:40 919src : http://www.cnblogs.co ... -
iPhone/iPad全屏截图与区域截图的几种方法
2012-09-06 13:48 4193http://www.cocoachina.com/newbi ... -
【转载】将int型数据转换成任意进制字符串的算法
2012-08-28 09:50 7271. http://hi.baidu.com/doking_b ... -
iOS 使用 predicate 限定 NSNumber 类型的数据
2012-07-02 13:25 900错误的写法: predicate = [NSPredicat ... -
在Mac OS X Lion系统中访问~/Library目录都需要点技巧
2012-07-02 10:52 1008Mac虚拟机升级为Lion系统了,在iPhone模拟机 ... -
XCode调试 设置全局断点并快速定位问题代码所在行
2012-06-20 19:17 0http://www.kaifazu.com/iOS_kfjc ... -
Error Domain=NSOSStatusErrorDomain Code=-9807
2012-06-14 10:28 6839Client 端连接服务器时会有时会遇到一下错误: ... -
iOS 的 keychain 简介
2012-05-03 10:38 1226src: http://www.cnblogs.com/v2m ... -
Exception and Signal
2012-03-27 15:11 641src: http://publib.boulder.ibm. ... -
Handling unhandled exceptions and signals
2012-03-27 14:54 734src: http://cocoawithlove.com/2 ... -
操作CoreData 常见的错误及解决方法
2012-03-07 18:06 789src: http://blog.csdn.net/ch_ ... -
scrollViewDidScroll 和scrollViewDidEndScrollingAnimation的区别
2012-02-23 11:30 4395UIScrollViewDelegate has got ... -
iOS自定义风火轮UIActivityIndicator
2012-02-15 23:07 6543src:http://blog.csdn.net/kmyhy/ ... -
Google Talk 和 Google Voice 的终极整合
2012-02-15 10:14 812src : http://dan.febird.net/2 ... -
How To Use UIView Animation Tutorial
2012-02-08 16:20 722src: http://www.raywenderlich.c ... -
iOS应用程序状态切换相关
2012-01-31 15:14 834原文出处: http://blog.csdn.net/duan ... -
xcode4 设置调试错误信息小结
2012-01-17 13:17 900原文出处: http://blog.csdn.net/coc ... -
抓包工具charles使用方法
2012-01-08 14:08 3913这个是charles在mac上的使用方法 http://www ...
相关推荐
在iOS开发中,有时我们需要监听用户的手机静音键和侧边音量键的改变,以便在特定场景下做出相应的响应。本文将详细讲解如何正确地实现这一功能,并解决可能出现的问题。 首先,我们要知道iOS提供了AudioSession服务...
同时,你可能还需要根据自己的需求,调整进度条的显示位置和外观,以及监听音量改变的回调函数,以便在音量变化时执行相应的逻辑。 总的来说,"ios-音量进度条 (App顶部全局音量进度条)"项目提供了一个实用且易于...
确保在处理音量变化时考虑不同音量流(如媒体音量、铃声音量等)。 ```java AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); slider.setOnChangeListener(new Slider....
这个“安卓app开发项目-仿ios音量调节的效果”源码提供了实现这一功能的具体方案。下面我们将详细探讨相关的技术点、实现原理以及如何在实际项目中应用这些代码。 首先,iOS的音量调节界面通常会显示一个滑动条,...
3. **监听音量变化**: 如果需要实时更新音量进度条,可以监听`AVAudioSessionRouteChangeNotification`通知。当音量或音频路由发生变化时,系统会发送此通知。 ```swift NotificationCenter.default.addObserver...
在Android应用开发中,模拟iOS音量调节效果是一项常见的需求,尤其在追求界面一致性或跨平台体验时。这个"Android应用源码仿ios音量调节的效果"项目提供了一个示例,帮助开发者理解如何在Android平台上实现类似iOS的...
在安卓平台上实现仿iOS...总的来说,实现仿iOS音量调节效果的安卓App不仅涉及到用户界面设计和交互逻辑,还涉及到与系统服务的交互。这个过程既锻炼了开发者的技术能力,也提升了其对整体应用架构和用户体验的理解。
同时,为了处理网络状态变化和错误,你需要理解断点续传、网络状态监听和错误处理机制。 2. **数据解析**:获取到的数据可能以JSON、XML或自定义格式存在,需要解析成可操作的对象。对于JSON,可以使用系统的JSON...
同时,配合uni-app的生命周期函数,可以实现更复杂的逻辑,如初始化视频、监听播放状态变化等。 总结来说,uni-app-video组件是uni-app生态中的重要组成部分,它为开发者提供了高效、便捷的视频播放解决方案,特别...
开发者需要监听音量改变的通知,并同步更新UI。 总的来说,"PlayMusicAction"这个项目覆盖了iOS音频播放的核心技术,包括AVFoundation框架的应用、用户界面设计、后台播放支持、设备运动检测以及音量控制。通过研究...
使用`AVAudioPlayer`的代理方法,可以监听播放状态的变化,如播放完成、暂停等,从而更新UI和执行相应的操作。同时,利用`NotificationCenter`可以监听系统级别的事件,如耳机插入/拔出,以便做出相应反应。 8. **...
可以监听设备的相关通知,如`AVAudioSessionRouteChangeNotification`,根据变化来调整音频状态。 在开发过程中,测试后台音频功能至关重要。你可以使用Xcode的模拟器或者真机设备进行测试,切换到后台模式,观察...
这涉及iOS中的AVFoundation框架,尤其是AVAudioPlayer类,它能播放音频文件,控制音量,处理播放状态等。同时,为了支持播放列表功能,需要理解如何使用数组或者字典等数据结构来存储歌曲信息。 用户登录功能通常...
总结一下,"iOS音乐播放器"项目主要涉及AVPlayer在播放本地音乐时的基本操作,包括播放、暂停、停止和音量控制,以及监听播放状态。通过学习和实践这个项目,开发者可以进一步掌握iOS音频开发的基础,并能扩展到更...
- 使用NSNotification监听音乐播放状态变化,如播放、暂停、结束等,以便更新用户界面。 7. **上一曲下一曲控制**: - 当用户点击上一曲或下一曲按钮时,检查当前播放的歌曲信息,然后根据需求选择上一首或下一首...
- **音乐播放状态更新**:为了确保界面实时反映音乐播放状态,应用可能利用`NSNotification`或遵循`AVAudioPlayerDelegate`协议来监听音频播放的改变,如播放结束、暂停等。 5. **多任务处理**: - **后台播放**...
在电子琴应用中,你需要监听用户触摸屏幕的事件,将这些事件转化为音符,然后利用Core Audio播放相应的音频样本或合成声音。 3. **AVFoundation框架**:除了Core Audio,AVFoundation框架也是处理音频的关键。你...
例如,可以通过监听`IFlySpeechSynthesizerDelegate`的代理方法来获取合成状态变化的通知。 总之,实现iOS上的文字转语音功能,可以利用苹果的AVFoundation框架,也可以借助第三方如讯飞的SDK,后者提供了更多的...
这将允许应用在后台播放音频,但请注意,苹果对后台音频使用有严格的规定,应确保其符合App Store审核指南。 在实际播放音频时,可以调用AVAudioPlayer的play()方法: ```swift audioPlayer.play() ``` 为了控制...
6. **事件监听与回调**:在播放过程中,可能需要监听各种状态变化,如播放完成、缓冲进度、错误发生等,源码可能会展示如何设置这些监听和处理相应的回调。 7. **内存管理和性能优化**:良好的源码会考虑到内存管理...