SurfaceView的API
http://developer.android.com/intl/zh-cn/reference/android/view/SurfaceView.html
MediaPlayer的API
http://developer.android.com/intl/zh-cn/reference/android/media/MediaPlayer.html
两个API都是 :
Added in API level 1
比较老的API, 根据经验, 这可能会就意味着会比较的占内存, 效率低下, 用起来麻烦.
PS : 真实的开发很好少用SurfaceView+MediaPlayer来播放视频, 它能做的太有限了
下面是效果图 :
写的代码注释尽可能的详细: 这篇文章主要是学习MediaPlayer的API, 有了这个基础后面的就好办了
注意: MediaPlayer的API调用是有顺序的, 如图下图所示,
比如:你不能在还没准备好的(调用prepared)情况下去调用开始播放(start), 不能在stop之后去调用start.
public class MainActivity extends AppCompatActivity implements MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnBufferingUpdateListener, MediaPlayer.OnInfoListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnSeekCompleteListener, View.OnClickListener {
private String TAG = "MainActivity";
private SurfaceView mSurfaceView;
private SurfaceHolder mSurfaceHolder;
private MediaPlayer mMediaPlayer;
private Button mStart;
private Button mPause;
private Button mRestart;
private Button mNextVideo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSurfa