mediaplayer与surfaceView,无法播放问题

摘要:
mediaplayer需要在surfaceView创建之后才能创建,不然会导致错误。

mediaplayer需要在surfaceView创建之后才能创建,不然会导致错误。

1 surfaceholder =msurface.getHolder();
2         surfaceholder.setKeepScreenOn(true);
3         surfaceholder.addCallback(new SurfaceViewLis());
1 private class SurfaceViewLis implementsSurfaceHolder.Callback {  
2           
3 @Override  
4         public void surfaceChanged(SurfaceHolder holder, int format, intwidth,  
5                 intheight) {  
6   
7 }  
8   
9 @Override  
10         public voidsurfaceCreated(SurfaceHolder holder) {  
11             mPlayer = MediaPlayer.create(AnimationGuideActivity.this, R.raw.guideanimation);
12 mPlayer.setDisplay(holder);
13             mPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {
14                 
15 @Override
16                 public voidonCompletion(MediaPlayer arg0) {
17                     //TODO Auto-generated method stub
18                     Intent intent = new Intent(AnimationGuideActivity.this, IrisActivity.class);
19 finish();
20 startActivity(intent);
21 }
22 });
23 
24             try{
25                 mPlayer.setOnPreparedListener(newOnPreparedListener() {
26                     
27 @Override
28                     public voidonPrepared(MediaPlayer arg0) {
29 mPlayer.start();
30                         
31 }
32 });
33 mPlayer.prepareAsync();
34             } catch(IllegalStateException  e) {
35                 //TODO Auto-generated catch block
36 e.printStackTrace();
37 }
38   
39 }  
40   
41 @Override  
42         public voidsurfaceDestroyed(SurfaceHolder holder) {  
43   
44 }  
45   
46     }  

免责声明:文章转载自《mediaplayer与surfaceView,无法播放问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win10 安装wsl2 centos使用Nginx自带的Realip模块获取用户真实IP下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android系统中的广播(Broadcast)机制简要介绍和学习计划

  在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用;本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备。         在Android系统中,为什么需要广播机制呢?广播机制,...

AlarmManager

AlarmManager 主要管理硬件时钟。 一些与时间相关的应用,如日历,闹钟等需要使用Alarm Manager的服务。Alarm manager功能相对比较简单,相关代码位于frameworks/base/core/jni/server/com_android_server_AlarmManagerService.cppframeworks/base...

【Android实验】组件通信Intent

实验目的 目录 实验目的 实验要求 实验结果 实验代码 father.xml:主界面文件 content_child.xml:子界面 Fourth.java: 处理文件 ChildActivity.java: 子界面处理文件 实验总结 了解使用Intent进行组件通信原理 掌握使用Intent启动Activity的方法 熟悉和掌握A...

android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在...

Android 4 学习(19):Services

参考《Professional Android 4 Development》   Services Service是invisible的,因此其优先级不高于visible的Activity,之所以说不高于,是因为我们可以设置Service为在前台运行。 创建Service Android提供了Service抽象类,继承它便可以创建一个Service类:  ...

Android中ActionBar的使用

ActionBar是一个显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。 ActionBar的基本操作 启用ActionBar Android3.0版本已经默认使用了ActionBar,因此只要在Mainifest.xml中配置的targetSdkVersion高于11(Android3.0),则默认会使用ActionB...