我用videoview做播放视频,我怎么实现全屏播放啊,我用了网上的方法,都不行,画面两边还是有黑屏的,我想要无论视频的分辨率是多少,它都画面全屏播放
解决方案 »
- 菜鸟求帮助~关于安卓UI
- 求各位大侠帮助出点注意关于android网上购物平台的项目
- android 2.3 鼠标显示问题???
- 为什么ArrayList的add函数不仅增加一个数据,还把先前加的记录都改为和新加的数据?
- ListView的Item里有Checkbox的时候怎么让ItemClickListener起作用?
- forlinx_led_server.server.LedService; 这个库文件一般在什么目录中?
- android布局高手帮我看一下这个效果怎么布局
- 关于实现点击图片变亮(或则其他变化)的问题
- Android 串口连接下位机 报错 信息如下。
- 求助,大佬们,我使用github下载的代码报错了,麻烦帮忙看下,谢谢
- 写入sd卡遇到问题
- Android开发新的机遇和市场
package com.gushi;import java.io.FileDescriptor;
import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnBufferingUpdateListener;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;public class app_1 extends Activity implements SurfaceHolder.Callback,
OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener{
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private MediaPlayer mediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.surfaceView = new SurfaceView(this);
this.surfaceHolder = this.surfaceView.getHolder();
this.surfaceHolder.addCallback(this);
//类型必须设置成SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS
this.surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
setContentView(this.surfaceView);
}
@Override
public void onDestroy() {
super.onDestroy();
if (this.mediaPlayer != null) {
this.mediaPlayer.release();
this.mediaPlayer = null;
}
}
public void PlayVideo(){
try {
//视频文件放在 assert中
Intent it = this.getIntent();
Bundle bundle = it.getExtras();
String gsString= bundle.getString("gs"); //gsString是视频名字AssetFileDescriptor aFD = this.getAssets().openFd(gsString);
FileDescriptor fileDescriptor = aFD.getFileDescriptor();
this.mediaPlayer = new MediaPlayer();
this.mediaPlayer.setDataSource(fileDescriptor, aFD.getStartOffset(), aFD.getLength());
aFD.close();
//视频放在SDCard中
//File sdFile = Environment.getExternalStorageDirectory();
//this.mediaPlayer = new MediaPlayer();
//this.mediaPlayer.setDataSource(sdFile.getAbsoluteFile() + File.separator + "welcome.3gp");
//视频放在res中
//this.mediaPlayer = MediaPlayer.create(this, R.raw.welcome);
//网上的视频,没有测试
//this.mediaPlayer
// .setDataSource("http://xy2.163.com/download/down/wukong.mp3");
this.mediaPlayer.setDisplay(this.surfaceHolder);
this.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//准备完成后才可以播放,另外如果文件特别大或者从网上获得的资源
//会在这里等待时间过长,造成堵塞,这样的话就得用
//this.mediaPlayer.prepareAsync(),然后监听是否准备完毕在开始
this.mediaPlayer.prepare();
this.mediaPlayer.start();
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//SurfaceCreated 创建成功才可以播放视频
PlayVideo();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
//@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
// TODO Auto-generated method stub
}
//@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
}
//@Override
public void onPrepared(MediaPlayer mp) {
//MediaPlayer加载准备完毕才能开始播放
//mp.start();
}
}
你好,你这代码也不行啊,这样应该只是按视频原大小进行全屏吧,我横屏时两边还是有黑屏的地方啊