Coder Social home page Coder Social logo

jqhee / zwtmusicplayer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liunianhuaguoyanxi/zwtmusicplayer

0.0 0.0 0.0 11.44 MB

一款基于高分开源的音乐播放器基础上重构后的播放器

License: MIT License

Ruby 0.29% Objective-C 99.71%

zwtmusicplayer's Introduction

ZWTMusicPlayer

锁屏状态

image

非锁屏状态

image

ESTMusicPlayer 是基于 DOUAudioStreamer 开发的一款开源,评分不错的音乐播放器.

ZWTMusicPlayer 是基于ESTMusicPlayer的基础上的重构,它移除了ESTMusicPlayer中老旧的远程控制事件的实现方式:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

      在App启动后开启远程控制事件, 接收来自锁屏界面和上拉菜单的控制
    
    
      [application beginReceivingRemoteControlEvents];
    
      return YES;
    
    }


    - (void)applicationWillTerminate:(UIApplication *)application
    
    {
    
        在App要终止前结束接收远程控制事件, 也可以在需要终止时调用该方法终止
    
        [application endReceivingRemoteControlEvents];
    
     }

    在具体的控制器或其它类中捕获处理远程控制事件

    - (void)remoteControlReceivedWithEvent:(UIEvent *)event{
  
      根据事件的子类型(subtype) 来判断具体的事件类型, 并做出处理
  
        switch (event.subtype)
        {
        
        case UIEventSubtypeRemoteControlPlay:
        
        case UIEventSubtypeRemoteControlPause: {
        
            执行播放或暂停的相关操作 (锁屏界面和上拉快捷功能菜单处的播放按钮)
            
            break;
        }
        case UIEventSubtypeRemoteControlPreviousTrack: {
        
            执行上一曲的相关操作 (锁屏界面和上拉快捷功能菜单处的上一曲按钮)
            
            break;
        }
        case UIEventSubtypeRemoteControlNextTrack: {
        
            执行下一曲的相关操作 (锁屏界面和上拉快捷功能菜单处的下一曲按钮)
            
            break;
        }
        case UIEventSubtypeRemoteControlTogglePlayPause: {
        
            进行播放/暂停的相关操作 (耳机的播放/暂停按钮)
            
            break;
        }
        default:
        
            break;}
            
        }

因为iOS7.1后,MPRemoteCommandCenter类已经提供了处理远程控制事件的对象, 包括由外部附件和系统传输控制发送的远程控制事件. 不需要自己创建该类的实例.

所以采取MPRemoteCommandCenter的共享对象来注册远程控制事件

具体内容(详细参见源码):

1.重构了播放的架构,使用MPRemoteCommandCenter的共享对象来注册远程控制事件

2.修复某些闪退bug,支持后台播放控制。

3.修复了有时前台音乐播放切歌时出现计时不准。

4.支持了后台播放音乐时,可控制音乐进度。

5.修正了后台播放音乐时,进度条与前台播放不准的问题。

6.iOS13适配

若能给大家带来帮助,记得star🙂

zwtmusicplayer's People

Contributors

liunianhuaguoyanxi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.