安卓 SurfaceView

baidu_26974557 2016-08-31 08:19:30


package com.gdqy.hxy.login;

import android.app.Activity;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;

import java.io.File;
import java.io.IOException;

public class MainActivity extends Activity {

private SurfaceView mSurfaceView;
private MediaPlayer mMediaPlayer;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mSurfaceView = (SurfaceView) findViewById(R.id.main_id_SV);
mSurfaceView.getHolder().setKeepScreenOn(true); //keepScreenOn属性保持屏幕常亮
mSurfaceView.getHolder().addCallback(new SurfaceViewLis()); //添加回调函数
mMediaPlayer = new MediaPlayer(); //必须在surface创建后才能初始化MediaPlayer,否则不会显示图像
}

private class SurfaceViewLis implements SurfaceHolder.Callback{

@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}

@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
try{
play();
}catch (Exception e){
e.printStackTrace();
}
}

@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
}
}

//播放背景视频方法
private void play() throws IOException {
AssetFileDescriptor mAssetFileDescriptor = this.getAssets().openFd("audio_back.3gp");
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //设置视频流的类型
mMediaPlayer.setDisplay(mSurfaceView.getHolder());
mMediaPlayer.setDataSource(mAssetFileDescriptor.getFileDescriptor(),
mAssetFileDescriptor.getStartOffset(),mAssetFileDescriptor.getLength());
mMediaPlayer.setLooping(true);//是否循环播放
//异步加载视频图像
mMediaPlayer.prepareAsync();
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//装载完毕
mMediaPlayer.start();//播放视频
}
});
}

}

请问大神为什么不会播放视频 是哪错了
...全文
187 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveWyf_ 2016-09-01
  • 打赏
  • 举报
回复
你debug一下,有没有抛异常。 把 mMediaPlayer = new MediaPlayer(); 放到surfacecreate里最上面试一下
baidu_26974557 2016-08-31
  • 打赏
  • 举报
回复
有声音但是没有图像

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧