标签:
| 
 课程名称  | 
 基于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播放,但视频播放不了,一直黑屏,找不到错误,根据书本上的参考做的,单依然播放不了视频,暂时解决不了这个问题。还有待研究。  | 
|||||
| 
 实验评语  | 
 
  | 
||||
| 
 实验成绩  | 
 
  | 
 指导教师签名: 年 月 日  | 
|||
标签:
原文地址:http://www.cnblogs.com/lijiahui/p/5419602.html