zoukankan      html  css  js  c++  java
  • 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音乐功能的转换

    17source tliosiOSapi.MediaPlayer.pas

    AVAudioSession

    playbackSessionID

    function playbackSessionID: NSString; cdecl;

     procedure setUseApplicationAudioSession(useApplicationAudioSession: Boolean); cdecl;

    function useApplicationAudioSession: Boolean; cdecl;

  • 相关阅读:
    Insus Meta Utility
    The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
    Insus Binary Utility
    asp.net实现文件下载功能
    Column 'Column Name' does not belong to table Table
    程序已被编译为DLL,怎样去修改程序功能
    如何在Web网站实现搜索功能
    如何把数据流转换为二进制字符串
    Asp.net更新文件夹的文件
    如何显示中文月份
  • 原文地址:https://www.cnblogs.com/cb168/p/5078026.html
Copyright © 2011-2022 走看看