IPlayerManager.java 1.6 KB
Newer Older
1 2 3 4 5
package com.shuyu.gsyvideoplayer.player;

import android.content.Context;
import android.os.Message;

G
guoshuyu 已提交
6
import com.shuyu.gsyvideoplayer.cache.ICacheManager;
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import com.shuyu.gsyvideoplayer.model.VideoOptionModel;

import java.util.List;

import tv.danmaku.ijk.media.player.IMediaPlayer;

/**
 * 播放器差异管理接口
 * Created by guoshuyu on 2018/1/11.
 */

public interface IPlayerManager {

    IMediaPlayer getMediaPlayer();

G
guoshuyu 已提交
22 23 24 25 26 27 28
    /**
     * 初始化播放内核
     *
     * @param message         播放器所需初始化内容
     * @param optionModelList 配置信息
     * @param cacheManager    缓存管理
     */
G
guoshuyu 已提交
29
    void initVideoPlayer(Context context, Message message, List<VideoOptionModel> optionModelList, ICacheManager cacheManager);
30

G
guoshuyu 已提交
31 32 33
    /**
     * 设置渲染显示
     */
34 35
    void showDisplay(Message msg);

G
guoshuyu 已提交
36 37 38
    /**
     * 是否静音
     */
39 40
    void setNeedMute(boolean needMute);

G
guoshuyu 已提交
41 42 43
    /**
     * 释放渲染
     */
G
guoshuyu 已提交
44 45
    void releaseSurface();

G
guoshuyu 已提交
46 47 48
    /**
     * 释放内核
     */
49 50
    void release();

G
guoshuyu 已提交
51 52 53
    /**
     * 缓存进度
     */
S
shuyu 已提交
54
    int getBufferedPercentage();
G
guoshuyu 已提交
55

G
guoshuyu 已提交
56 57 58
    /**
     * 网络速度
     */
G
guoshuyu 已提交
59 60
    long getNetSpeed();

G
guoshuyu 已提交
61 62 63
    /**
     * 播放速度
     */
G
guoshuyu 已提交
64
    void setSpeedPlaying(float speed, boolean soundTouch);
G
guoshuyu 已提交
65 66

    void setSpeed(float speed, boolean soundTouch);
G
guoshuyu 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

    void start();

    void stop();

    void pause();

    int getVideoWidth();

    int getVideoHeight();

    boolean isPlaying();

    void seekTo(long time);

    long getCurrentPosition();

    long getDuration();

    int getVideoSarNum();

    int getVideoSarDen();
89
}