package com.asha.md360player4android; import android.net.Uri; import android.os.Bundle; import android.view.Surface; import android.view.View; import android.widget.Toast; import com.asha.vrlib.MD360Director; import com.asha.vrlib.MD360DirectorFactory; import com.asha.vrlib.MDVRLibrary; import com.asha.vrlib.model.BarrelDistortionConfig; import com.asha.vrlib.model.MDPinchConfig; import tv.danmaku.ijk.media.player.IMediaPlayer; /** * Created by hzqiujiadi on 16/4/5. * hzqiujiadi ashqalcn@gmail.com */ public class VideoPlayerActivity extends MD360PlayerActivity { private static final String TAG = "VideoPlayerActivity"; private MediaPlayerWrapper mMediaPlayerWrapper = new MediaPlayerWrapper(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mMediaPlayerWrapper.init(); mMediaPlayerWrapper.setPreparedListener(new IMediaPlayer.OnPreparedListener() { @Override public void onPrepared(IMediaPlayer mp) { cancelBusy(); if (getVRLibrary() != null){ getVRLibrary().notifyPlayerChanged(); } } }); mMediaPlayerWrapper.getPlayer().setOnErrorListener(new IMediaPlayer.OnErrorListener() { @Override public boolean onError(IMediaPlayer mp, int what, int extra) { String error = String.format("Play Error what=%d extra=%d",what,extra); Toast.makeText(VideoPlayerActivity.this, error, Toast.LENGTH_SHORT).show(); return true; } }); mMediaPlayerWrapper.getPlayer().setOnVideoSizeChangedListener(new IMediaPlayer.OnVideoSizeChangedListener() { @Override public void onVideoSizeChanged(IMediaPlayer mp, int width, int height, int sar_num, int sar_den) { getVRLibrary().onTextureResize(width, height); } }); Uri uri = getUri(); if (uri != null){ mMediaPlayerWrapper.openRemoteFile(uri.toString()); mMediaPlayerWrapper.prepare(); } findViewById(R.id.control_next).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mMediaPlayerWrapper.pause(); mMediaPlayerWrapper.destroy(); mMediaPlayerWrapper.init(); mMediaPlayerWrapper.openRemoteFile(DemoActivity.sPath + "video_31b451b7ca49710719b19d22e19d9e60.mp4"); mMediaPlayerWrapper.prepare(); } }); } @Override protected MDVRLibrary createVRLibrary() { return MDVRLibrary.with(this) .displayMode(MDVRLibrary.DISPLAY_MODE_NORMAL) .interactiveMode(MDVRLibrary.INTERACTIVE_MODE_MOTION) .asVideo(new MDVRLibrary.IOnSurfaceReadyCallback() { @Override public void onSurfaceReady(Surface surface) { mMediaPlayerWrapper.setSurface(surface); } }) .ifNotSupport(new MDVRLibrary.INotSupportCallback() { @Override public void onNotSupport(int mode) { String tip = mode == MDVRLibrary.INTERACTIVE_MODE_MOTION ? "onNotSupport:MOTION" : "onNotSupport:" + String.valueOf(mode); Toast.makeText(VideoPlayerActivity.this, tip, Toast.LENGTH_SHORT).show(); } }) .pinchConfig(new MDPinchConfig().setMin(1.0f).setMax(8.0f).setDefaultValue(0.1f)) .pinchEnabled(true) .directorFactory(new MD360DirectorFactory() { @Override public MD360Director createDirector(int index) { return MD360Director.builder().setPitch(90).build(); } }) .projectionFactory(new CustomProjectionFactory()) .barrelDistortionConfig(new BarrelDistortionConfig().setDefaultEnabled(false).setScale(0.95f)) .build(R.id.gl_view); } @Override protected void onDestroy() { super.onDestroy(); mMediaPlayerWrapper.destroy(); } @Override protected void onPause() { super.onPause(); mMediaPlayerWrapper.pause(); } @Override protected void onResume() { super.onResume(); mMediaPlayerWrapper.resume(); } }