package com.androideasyapps.phoenix;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import com.androideasyapps.phoenix.dao.MediaFile;
import com.androideasyapps.phoenix.shared.AppInstance;
import com.androideasyapps.phoenix.util.MediaUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tv.danmaku.ijk.media.widget.MediaController;
import tv.danmaku.ijk.media.widget.VideoView;
public class VideoPlayerActivity extends Activity {
private static final Logger log = LoggerFactory.getLogger(VideoPlayerActivity.class);
private VideoView mVideoView;
private View mBufferingIndicator;
private MediaController mMediaController;
private String mVideoPath;
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d("KEYS", "KEYUP: " + keyCode);
if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {
// first time we hit right/left is just shows the controller, second time will do the skip
if (mMediaController.isShowing()) {
mMediaController.updatePosition(30000);
} else {
mMediaController.show(5000);
}
return true;
} else if (keyCode==KeyEvent.KEYCODE_DPAD_LEFT) {
if (mMediaController.isShowing()) {
mMediaController.updatePosition(-10000);
} else {
mMediaController.show(5000);
}
return true;
} else if (keyCode==KeyEvent.KEYCODE_DPAD_UP) {
mMediaController.show(5000);
return true;
} else if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN) {
mMediaController.hide();
return true;
} else if (keyCode==KeyEvent.KEYCODE_BUTTON_A) {
mMediaController.show(5000);
mMediaController.doPauseResume();
return true;
} else {
return super.onKeyUp(keyCode, event);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
Intent intent = getIntent();
// String intentAction = intent.getAction();
// if (!TextUtils.isEmpty(intentAction)
// && intentAction.equals(Intent.ACTION_VIEW)) {
// mVideoPath = intent.getDataString();
// }
final MediaFile mf = AppInstance.getInstance(this).getSelectedMediaFile();
mVideoPath = MediaUtil.getVideoURLWithEmbeddedAuth(AppInstance.getInstance(this).getServer(), mf);
log.info("Playing: {}", mVideoPath);
mBufferingIndicator = findViewById(R.id.buffering_indicator);
mMediaController = new MediaController(this);
mMediaController.setOnShownListener(new MediaController.OnShownListener() {
@Override
public void onShown() {
mMediaController.setFileName(MediaUtil.getLongTitle(mf).toString());
}
});
mVideoView = (VideoView) findViewById(R.id.video_view);
mVideoView.setMediaController(mMediaController);
mVideoView.setMediaBufferingIndicator(mBufferingIndicator);
mVideoView.setVideoPath(mVideoPath);
mVideoView.requestFocus();
mVideoView.start();
}
}