实验报告
课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
4月15日 |
||
实验项目名称 |
在应用程序中播放音频和视频 |
实验地点 |
S3010 |
||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
|||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||
实现在应用程序中处理音频和视频。 1) 实现播放音频,音频播放控制; 2) 实现播放视频,视频播放控制; 3) 使用Service服务播放项目源文件中的音乐。 |
|||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||
三、实验内容及步骤 |
|||||
一、新建openvideo_main,MusicService的类和openvideo.xml 二、导入歌曲与视频到本地手机
三、完善关键代码 |
|||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) |
|||||
代码: MusicService关键代码: public class MusicService extends Service { private String TAG="Main"; MediaPlayer mp=new MediaPlayer(); @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate();//初始化MediaPlayer对象,准备播放音乐,音乐文件放在文件夹/res/raw中 String sdCard=Environment.getExternalStorageDirectory().getPath(); try { mp.setDataSource(sdCard+File.separator+"bjmusic.mp3"); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { mp.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub //开始播放音乐 mp.start(); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); //停止播放音乐 mp.stop(); } Openvideo.xml布局关键代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <SurfaceView android:id="@+id/VView1" android:layout_width="match_parent" android:layout_height="288dp" android:keepScreenOn="true"/> </LinearLayout> Openvideo_main关键代码 public class openvideo_main extends Activity{ private SurfaceView sv; private MediaPlayer vi; @SuppressLint("SdCardPath") @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.openvideo); vi=new MediaPlayer(); sv=(SurfaceView)findViewById(R.id.VView1); //sv.getHolder().setKeepScreenOn(true); //String sdCard=Environment.getExternalStorageDirectory().getPath(); try { vi.setDataSource("/sdcard/Movies/vvv.mp4"); vi.setDisplay(sv.getHolder()); vi.prepare(); vi.start(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } Music_main中播放音乐关键代码 who_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override public void onCheckedChanged(RadioGroup arg0, int arg1) { // TODO Auto-generated method stub Intent intent=new Intent(music_main.this, MusicService.class); if (arg1==R.id.opmusic) { startService(intent);
}else if(arg1==R.id.clomusic){ stopService(intent); } } }); } 运行结果:(截图) 点击MainActivity系统菜单中的设置
点击帮助,然后点击数独视频教学
|
|||||
五、实验总结(对本实验结果进行分析,实验心得体会及改进意见) |
|||||
音乐可以通过service播放,但视频播放不了,一直黑屏,找不到错误,根据书本上的参考做的,单依然播放不了视频,暂时解决不了这个问题。还有待研究。 |
|||||
实验评语 |
|
||||
实验成绩 |
|
指导教师签名: 年 月 日 |
|||