PlayerManagerUtils.java 2.86 KB
package com.wd.musicplayer;

import com.wd.foundation.wdkit.base.BaseApplication;
import com.wd.common.floatingview.FloatWindow;
import com.wd.musicplayer.player.PlayerManager;
import com.wd.musicplayer.ui.activity.MusicNewPlayerActivity;

/**
 * 音频悬浮窗管理器、设置音频悬浮窗布局文件、暂停、播放 等功能,资源文件引用处
 * layout_voice_broadcast_float.xml文件在这里的引用的,增加注释,避免每次找半天
 * @author wondertek
 */
public class PlayerManagerUtils {

    public static final int BUTTON_PREV = 0;
    public static final int BUTTON_PLAY = 1;
    public static final int BUTTON_NEXT = 2;

    public static final int BUTTON_CLOSE = 3;

    /**
     * 内容点击
     */
    public static final int CONTENT_CLICK = 4;

    /**
     * 展示语音播报控件
     */
    public static final int SHOW_VOICE = 5;

    /**
     * 隐藏语音播报控件
     */
    public static final int HIDDEN_VOICE = 6;

    public static void pauseAudio() {
        PlayerManager.getInstance().pauseAudio();
    }

    public static boolean isDataAvailable() {
        return PlayerManager.getInstance().getCurrentPlayingMusic() != null;
    }

    public static void setTimer(Long timing) {
        PlayerManager.getInstance().setTimer(timing);
    }

    public static void init() {

        FloatWindow.with(BaseApplication.getInstance())
                //悬浮布局
                .setLayoutId(R.layout.layout_voice_broadcast_float)
                //过滤需要的activity
                .setFilter(MusicNewPlayerActivity.class)
                .build();
    }

    public static void clear() {
        PlayerManager.getInstance().clear();
    }

    public static void playAudio() {
        PlayerManager.getInstance().playAudio();
    }

    /**
     * 图文详情页语音播报迁移代码如下***********************************************************
     * */
    //更新数据
    public static void updateInformation(int action) {

        switch (action) {
            case CONTENT_CLICK:
                break;
            case BUTTON_PREV:
                break;
            case BUTTON_PLAY:
                updatePlayButton();
                break;
            case BUTTON_NEXT:
                break;
            case BUTTON_CLOSE:
                onDestroy();
                break;
            case SHOW_VOICE:
                //展示语音播报控件
                break;
            case HIDDEN_VOICE:
                //隐藏语音播报控件
                break;
        }
    }

    private static void onDestroy() {
        PlayerManager.getInstance().clear();
    }

    //更新 按钮
    public static void updatePlayButton() {

        if (PlayerManager.getInstance().isPlaying()) {
            PlayerManager.getInstance().pauseAudio();
        } else {
            PlayerManager.getInstance().playAudio();
        }
    }
}