我对Android媒体播放器有疑问。我想让它从res / raw /文件夹播放视频。我想我已经正确设置了它,但我得到的只是黑屏。我可以在logcat中看到发现了视频(所有信息如分辨率都可见)。你知道什么是错的吗?
public class EnterActivity extends Activity implements SurfaceHolder.Callback {
SurfaceView mSurfaceView = null;
public static MediaPlayer mp = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter);
mp = MediaPlayer.create(this, R.raw.video);
mSurfaceView = (SurfaceView) findViewById(R.id.video_surface);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//Get the dimensions of the video
int videoWidth = mp.getVideoWidth();
int videoHeight = mp.getVideoHeight();
//Get the width of the screen
int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
Log.d("Width Screen", screenWidth + "");
//Get the SurfaceView layout parameters
android.view.ViewGroup.LayoutParams lp = mSurfaceView.getLayoutParams();
//Set the width of the SurfaceView to the width of the screen
lp.width = screenWidth;
//Set the height of the SurfaceView to match the aspect ratio of the video
//be sure to cast these as floats otherwise the calculation will likely be 0
lp.height = (int) (((float)videoHeight / (float)videoWidth) * (float)screenWidth);
//Commit the layout parameters
mSurfaceView.setLayoutParams(lp);
//Start video
mp.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
答案 0 :(得分:1)
这是我使用Android应用程序播放简单视频的代码。我的视频文件的名称是“samplevideo”。它出现在原始文件夹中。
package in.bhartisoftwares.amit.allamitapps;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.MediaController;
import android.widget.VideoView;
public class videoController extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_controller);
VideoView videoView = (VideoView) findViewById(R.id.videoView2);
videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.samplevideo);
MediaController mediaController = new MediaController(this); // we need session, which is combination of context and session id. So we used "this" keyword here
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.start();
}
}
我还为这个视频播放器添加了一些媒体控制器。希望这有帮助