效果图,是动画片《辛特尔》的截图,加载可能要几十秒
- 不要忘了网络权限
- MainActivity.java代码
public class MainActivity extends AppCompatActivity {
private SurfaceView surfaceView;
private MediaPlayer player;
private SurfaceHolder holder;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
String uri = "https://media.w3.org/2010/05/sintel/trailer.mp4";
player = new MediaPlayer();
try {
player.setDataSource(this, Uri.parse(uri));
holder = surfaceView.getHolder();
holder.addCallback(new MyCallBack());
player.prepareAsync();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
progressBar.setVisibility(View.INVISIBLE);
player.start();
player.setLooping(true);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
private class MyCallBack implements SurfaceHolder.Callback {
@Override
public void surfaceCreated(SurfaceHolder holder) {
player.setDisplay(holder);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
}
- activity_main.xml布局代码



