安卓 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();//播放视频
}
});
}

}

请问大神为什么不会播放视频 是哪错了
...全文
181 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveWyf_ 2016-09-01
  • 打赏
  • 举报
回复
你debug一下,有没有抛异常。 把 mMediaPlayer = new MediaPlayer(); 放到surfacecreate里最上面试一下
baidu_26974557 2016-08-31
  • 打赏
  • 举报
回复
有声音但是没有图像
Android Camera开发入门:目录 第一篇: 前景  一、Android Camera开发前景;      1)camera相关应用的领域      2)相关岗位介绍;      3)市场招聘介绍;      4)发展前景介绍;  二、学习这门课的重要性;      1)适合的人群;      2)熟悉和了解Android Camera 应用开发流程的重要性 第二篇: 开发环境安装  一、jdk、sdk的配置;  二、android studio的安装介绍;  三、adb命令的使用; 第三篇: Camera 常用api和最新框架介绍  一、android camera api介绍      1)camera1、camera2 区别;      2)camera 1、camera2 常用api介绍;      3)android camerax;  二、android camera最新框架介绍 第四篇:Camera api1实现预览、拍照、录像功能  一、预览  二、拍照  三、录像  四、获取实时预览流 第五篇: Camera2相机 打开功能实现第六篇: Camera2相机 预览功能实现  1)surfaceview、textureview 第七篇: Camera2相机 拍照功能实现 1)单拍; 第八篇:Camera2相机 录像功能实现1)正常录像 第九篇:Camera2预览方向、拍照方向设置     1) 预览变形问题如何处理? 第十篇:YUV流处理  1)如何获取实时预览流?  2)  思考:双码流方案如何实现?一边本地录像,一边后台推流 第十一篇:dumpsys media.camera 第十二篇:Camera2 Zoom变焦第十三篇:人脸识别(android 原生 & 三方人脸识别算法)第十四篇:Uvc UsbCamera第十五篇:Android Camera2拍摄RAW图第十六篇: Android Camera2同时打开前后摄 并 录像第十七篇: Android Camera2 视频慢动作  附:1)提供android开发相关资源      软件工具、Android相关学习书籍、学习相关网站博客等链接2)提供课程讲解中设计到的App 源码    * Camera API1使用源码    * Camera API2使用源码    * 调用三方算法人脸识别源码    *  录像慢动作源码    * Uvc UsbCamera相关源码3)课件

80,362

社区成员

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

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