/*****************************************************************************
* VideoView.java
*****************************************************************************
* Copyright © 2015 VLC authors and VideoLAN
*
* Authors Jean-Baptiste Kempf <jb@videolan.org>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
package org.videolan.libvlc.media;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.media.MediaFormat;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnErrorListener;
import android.media.MediaPlayer.OnInfoListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Build;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.MediaController;
import org.videolan.libvlc.LibVLC;
import org.videolan.libvlc.Media;
import java.io.InputStream;
import java.util.Map;
public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl {
private static LibVLC sLibVLC;
public VideoView(Context context) {
super(context);
}
public VideoView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public VideoView(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public VideoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
private void initLibVLC() {
sLibVLC = new LibVLC();
}
@Override
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
}
@Override
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
}
public int resolveAdjustedSize(int desiredSize, int measureSpec) {
return getDefaultSize(desiredSize, measureSpec);
}
public void setVideoPath(String path) {
initLibVLC();
final Media media = new Media(sLibVLC, path);
}
public void setVideoURI(Uri uri) {
initLibVLC();
final Media media = new Media(sLibVLC, uri);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void setVideoURI(Uri uri, Map<String, String> headers) {
setVideoURI(uri);
}
public void addSubtitleSource(InputStream is, MediaFormat format) {
}
public void setMediaController(MediaController controller) {
}
public void setOnPreparedListener(OnPreparedListener l) {
}
public void setOnCompletionListener(OnCompletionListener l) {
}
public void setOnErrorListener(OnErrorListener l) {
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public void setOnInfoListener(OnInfoListener l) {
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return super.onTouchEvent(ev);
}
@Override
public boolean onTrackballEvent(MotionEvent ev) {
return super.onTrackballEvent(ev);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
@Override
public void start() {
}
@Override
public void pause() {
}
public void stopPlayback() {
}
@TargetApi(Build.VERSION_CODES.FROYO)
public void suspend() {
}
public void resume() {
}
@Override
public int getDuration() {
return -1;
}
@Override
public int getCurrentPosition() {
return 0;
}
@Override
public void seekTo(int msec) {
}
@Override
public boolean isPlaying() {
return false;
}
@Override
public int getBufferPercentage() {
return 0;
}
@Override
public boolean canPause() {
return false;
}
@Override
public boolean canSeekBackward() {
return false;
}
@Override
public boolean canSeekForward() {
return false;
}
@Override
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public int getAudioSessionId() {
return 0;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}