package com.pukka.videoplayertv; /** * Author: wxf * Date: 2025/1/6 13:44 * Description:播放器的抽象类封装 */ @SuppressWarnings("WeakerAccess") public abstract class AbstractMediaPlayer implements IMediaPlayer { private OnPreparedListener mOnPreparedListener; private OnCompletionListener mOnCompletionListener; private OnBufferingUpdateListener mOnBufferingUpdateListener; private OnSeekCompleteListener mOnSeekCompleteListener; private OnVideoSizeChangedListener mOnVideoSizeChangedListener; private OnErrorListener mOnErrorListener; private OnInfoListener mOnInfoListener; public final void setOnPreparedListener(OnPreparedListener listener) { mOnPreparedListener = listener; } public final void setOnCompletionListener(OnCompletionListener listener) { mOnCompletionListener = listener; } public final void setOnBufferingUpdateListener( OnBufferingUpdateListener listener) { mOnBufferingUpdateListener = listener; } public final void setOnSeekCompleteListener(OnSeekCompleteListener listener) { mOnSeekCompleteListener = listener; } public final void setOnVideoSizeChangedListener( OnVideoSizeChangedListener listener) { mOnVideoSizeChangedListener = listener; } public final void setOnErrorListener(OnErrorListener listener) { mOnErrorListener = listener; } public final void setOnInfoListener(OnInfoListener listener) { mOnInfoListener = listener; } public void resetListeners() { mOnPreparedListener = null; mOnBufferingUpdateListener = null; mOnCompletionListener = null; mOnSeekCompleteListener = null; mOnVideoSizeChangedListener = null; mOnErrorListener = null; mOnInfoListener = null; } protected final void notifyOnPrepared() { if (mOnPreparedListener != null) mOnPreparedListener.onPrepared(this); } protected final void notifyOnCompletion() { if (mOnCompletionListener != null) mOnCompletionListener.onCompletion(this); } protected final void notifyOnBufferingUpdate(int percent) { if (mOnBufferingUpdateListener != null) mOnBufferingUpdateListener.onBufferingUpdate(this, percent); } protected final void notifyOnSeekComplete() { if (mOnSeekCompleteListener != null) mOnSeekCompleteListener.onSeekComplete(this); } protected final void notifyOnVideoSizeChanged(int width, int height, int sarNum, int sarDen) { if (mOnVideoSizeChangedListener != null) mOnVideoSizeChangedListener.onVideoSizeChanged(this, width, height, sarNum, sarDen); } protected final boolean notifyOnError(int what, int extra) { return mOnErrorListener != null && mOnErrorListener.onError(this, what, extra); } protected final boolean notifyOnInfo(int what, int extra) { return mOnInfoListener != null && mOnInfoListener.onInfo(this, what, extra); } public void setDataSource(IMediaDataSource mediaDataSource) { throw new UnsupportedOperationException(); } }