/* * Copyright (C) 2013-2014 Zhang Rui <bbcallen@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package tv.danmaku.ijk.media.player; import tv.danmaku.ijk.media.player.misc.IMediaDataSource; @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(); } }