Delphi IOS MusicPlayer 锁屏运行学习
[weak] FMusicPlayer: TMusicPlayer;
[weak]修饰, 编译器在处理这个变量的时候不会调用该变量内容的__ObjAddRef和__ObjRelease.,
procedure DoUpdateUI(newPos: Single);//更新进度条
procedure UpdateNowPlaying(newIndex: Integer);//当前播放歌曲名称等信息
procedure UpdateSongs;//添加歌曲列表
procedure SongChanged(newIndex: Integer);//切换歌曲
procedure StateChanged(state: TMPPlaybackState);//更新播放、暂停等几个按钮Enabled
procedure TFMXMusicPlayerFrm.DoUpdateUI(newPos: Single);
var
handler: TNotifyEvent;
begin
handler := tbProgress.OnChange;
tbProgress.OnChange := nil;
tbProgress.Value := newPos;
tbProgress.OnChange := handler;
end;
MusicPlayer.Utils公共变量等方法定义。
TMusicPlayer.DefaultPlayer.OnProcessPlay := DoUpdateUI;
经过日志跟踪,DoUpdateUI在运行的时候不断的更新,但是进入后台DoUpdateUI也不执行了,中断执行了!
锁屏后上一首、下一首、停止,怎么不起作用了呢?
经过日志跟踪,锁屏后 上一首、下一首、停止这些按钮都不会 被触发,锁屏后的暂停、播放执行的是后台别的机制?
播放按钮的图标,也应该是系统的,修改了form上的播放图标,锁屏后依然是原来的图标。
不用weak修饰变量也能锁屏播放,用了mediaplay.ios就可以啦。
播放
TMediaPlayer
afileName := Format('tt%d.caf', [self.mytplaysoundid]);
afileName := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, afileName);
aplayer.FileName := afileName; aplayer.Play;
delphi对IOS音乐功能的转换
17\source\rtl\ios\iOSapi.MediaPlayer.pas
AVAudioSession
playbackSessionID
function playbackSessionID: NSString; cdecl;
procedure setUseApplicationAudioSession(useApplicationAudioSession: Boolean); cdecl;
function useApplicationAudioSession: Boolean; cdecl;
Delphi IOS MusicPlayer 锁屏运行学习的更多相关文章
- Delphi IOS 蓝牙锁屏后台运行
Delphi IOS 后台运行 同样的程序,编译成android,锁屏后继续运行正常,蓝牙通讯正常,但在IOS下锁屏后程序的蓝牙就中断通讯了? IOS的机制就是这样,锁屏就关闭了. 音乐播放器是怎么做 ...
- 不会吧,这也行?iOS后台锁屏监听摇一摇
目录 背景介绍 探索过程 其他 APP 有没有类似功能 系统提供的摇一摇回调能否满足 其他方法能否实现 利用 CoreMotion 框架,监听加速计原始数据 通过加速计监听摇一摇 控制器相关逻辑和代码 ...
- WP8开发札记(二)让程序支持锁屏运行
我们都知道WP8是采用墓碑机制来管理应用程序的. 当我们把手机锁屏了,默认情况下,App就触发了deactivated 事件,准备被墓碑化了. 但是,有些时间我们不想让程序就此终止运行.(比如说,你开 ...
- iOS - Mac 锁屏快捷键设置
Mac 锁屏快捷键设置 control + shift + Eject 锁屏快捷键 如果用户要离开电脑一段时间,可以选择直接把笔记本直接合上.但是这样原先在跑的进程就会挂起或者结束,如果正在下载,那么 ...
- iOS开发——锁屏监听
公司所做的项目,锁屏监听是为了60秒后,解锁瓶后显示[手势解锁]或[指纹验证]: 第一步:AppDelegate.m 头部导入 #import <notify.h> #define Not ...
- IOS 阻止 锁屏
[UIApplication sharedApplication].idleTimerDisabled=YES;不自动锁屏 idleTimerDisabled
- iOS 视频全屏功能 学习
项目中,也写过类似"视频全屏"的功能, 前一阵子读到今日头条 的一篇技术文章,详细介绍三种旋转方法差异优劣最终择取.文章从技术角度看写的非常好,从用户角度看,也用过多家有视频功能的 ...
- ios阻止锁屏 --老代码,供参考
// Disable the idle timer [[UIApplication sharedApplication] setIdleTimerDisabled: YES]; // Or fo ...
- 阻止iOS设备锁屏
[[UIApplicationsharedApplication] setIdleTimerDisabled: YES];
随机推荐
- linux发行版本centos7.4上安装jdk,tomcat,mariadb良心教程
准备工作: 本地安装:rpm -ivh 程序名 因为jdk,tomcat,mysql的安装过程需要从网上下载部分支持包才可以继续,所以要求提前安装下载好依赖. yum install glibc.i6 ...
- JS实现浏览器打印、打印预览
1.JS实现打印的方式方式一:window.print()window.print();会弹出打印对话框,打印的是window.document.body.innerHTML中的内容,下面是从网上摘到 ...
- 如何用OpenCV跟踪鼠标操作
转载:如何用OpenCV跟踪鼠标操作 http://blog.skyoung.org/2014/05/01/how-to-track-mouse/ 在视频第一帧手动标记出目标的位置是在线视觉跟踪中最基 ...
- 《DSP using MATLAB》示例Example 8.23
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- flask第七篇——URL与视图函数的映射
有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...
- windows常用的命令行操作
1.切换当前目录 cd 路径 --change directory 2.创建目录 mkdir ‘文件名’ --make directory touch '文件名' --创建文件(多个文件用,分隔) 3 ...
- maven docker plugin 常见问题解决
1. maven 项目必须使用小写,不然会一直有500 的错误 500: HTTP 500InternalServerError 2. docker server 连接数超了 Fail ...
- 关于php user ini 文件的配置笔记 (TODO)
关于 user ini 文件的配置笔记 在使用 宝塔建网站时如果选中防跨域攻击就会在 项目目录生成 .user.ini 这里面是关于 open_basedir 的路径.
- counting elements--codility
lesson 4: counting elements 1. FrogRiverOne 2. PermCheck 3. MissingInteger 4. MaxCounters lesson 4: ...
- 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...