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];
随机推荐
- appium-java,同时连接多台机器,启动微信
1.配置appium信息 第一台机 第二台机类似,连接端口和监听端口不能重复 2.appium连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开 ...
- stm32寄存器版学习笔记08 DMA
DMA(Direct Memory Access),直接存储器访问.DMA传输方式无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU效率大大提高.stm32f10 ...
- Spring 管理Filter和Servlet
本文转载自:http://www.open-open.com/lib/view/open1417248512252.html 在使用spring容器的web应用中,业务对象间的依赖关系都可以用cont ...
- C#连接数据库以及增、删、改、查操作
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...
- Let’s Encrypt 将于 2018 年免费提供通配符证书
旨在让每个网站都启用 HTTPS 加密的 Let's Encrypt CA 宣布将于 2018 年 1 月免费提供通配符证书(Wildcard certificate).通配符证书是一种可被多个子域使 ...
- cookie控制登陆时间
使用cookie实现永久登陆 1,在cookie里面保存账号密码然后和数据库核对(由于我没有使用数据库,就不用了 2,在cookie里面保存时间戳和账号使用加密解密(我也没有使用时间戳 思路,requ ...
- Centos6.5 恢复误删的系统面板
在CentOS6.5下往面板上拖应用程序时,手贱了,点了"Delete This Panel".结果就悲剧了~面板不见了! 从网上搜了一下解决方法,列举一下. 1.新建面板 如果下 ...
- phpMyAdmin“缺少 mcrypt 扩展。请检查 PHP 配置。”解决办法
在ecmall二次开发中因php版本要求低于5.3,而如下更新要求升级PHP,所以以下方式不适合于ecmall商城项目. 解决办法:安装php-mcrypt libmcrypt libmcrypt-d ...
- jdk1.8新特性之lambda表达式
lambda表达式其实就是指一个匿名函数,应用最广泛的就是匿名内部类的简化.在jdk1.8之前,我们定义一个匿名内部类可能需要写一大坨代码,现在有了lambda之后,可以写的很简洁了.但不是说lamb ...
- C#操作mysql数据库,往mysql读取或者写入数据
最近在开发的一个项目,需要将数据存贮在mysql数据库中,于是需要写一个操作mysql的帮助类,我采用的是官方的,还是先给出一个链接,后面有时间的话,继续更新. http://blog.csdn.ne ...