在Android中,可以使用MediaPlayer类来播放本地文件中的视频。下面是一个示例代码,演示如何从分离的文件中播放视频:
首先,在你的Android项目的manifest文件中添加以下权限:
然后,创建一个布局文件activity_main.xml,包含一个SurfaceView用于显示视频:
接下来,在MainActivity中,添加以下代码:
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import androidx.appcompat.app.AppCompatActivity;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback {
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDisplay(surfaceHolder);
try {
// 从分离的文件中获取视频的路径
String videoPath = "/sdcard/video.mp4";
mediaPlayer.setDataSource(this, Uri.parse(videoPath));
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// 当SurfaceView的大小发生变化时,可以在这里处理
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mediaPlayer.release();
}
}
注意替换videoPath
为你自己视频文件的路径。同时,确保你的设备上有读取外部存储的权限。
这样,当你运行应用程序时,它将在SurfaceView中播放指定路径的视频文件。