一、在命令行下输入mksdcard 512M c:\sdcard.img命令,创建sdcard镜像文件。

二、单击Eclipse的菜单命令“Window/Preferences”,打开Preferences窗口,在左侧选中“Android/Launch”,在右侧的“Default emulator options”中填入“-sdcard c:\sdcard.img”。

三、启动模拟器,切换视图到DDMS,找到“File Explorer”窗口,选中“mnt/sdcard”,执行右上角的“Push a file onto the device”,向sdcard中添加视频文件“qtfy01.3gp”。

四、编写项目的布局文件main.xml,代码如下:

        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <SurfaceView
  8. android:id="@+id/surfaceView"
  9. android:layout_width="fill_parent"
  10. android:layout_height="380px"
  11. />
  12. <LinearLayout
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. >
  16. <Button
  17. android:id="@+id/play_btn"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="播放"
  21. />
  22. <Button
  23. android:id="@+id/pause_btn"
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="暂停"
  27. />
  28. </LinearLayout>
  29. </LinearLayout>
五、编写MainActivity.java代码。
        
  1. packagegame.test;
  2. importandroid.app.Activity;
  3. importandroid.graphics.PixelFormat;
  4. importandroid.media.AudioManager;
  5. importandroid.media.MediaPlayer;
  6. importandroid.os.Bundle;
  7. importandroid.view.SurfaceHolder;
  8. importandroid.view.SurfaceView;
  9. importandroid.view.View;
  10. importandroid.view.View.OnClickListener;
  11. importandroid.widget.Button;
  12. publicclassMainActivityextendsActivityimplementsSurfaceHolder.Callback{
  13. Stringpath="/sdcard/qtfy01.3gp";
  14. Buttonplay_btn,pause_btn;
  15. booleanisPause=false;
  16. SurfaceHoldersurfaceHolder;
  17. MediaPlayermediaPlayer;
  18. SurfaceViewsurfaceView;
  19. /**Calledwhentheactivityisfirstcreated.*/
  20. @Override
  21. publicvoidonCreate(BundlesavedInstanceState){
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.main);
  24. play_btn=(Button)findViewById(R.id.play_btn);
  25. play_btn.setOnClickListener(video_listener);
  26. pause_btn=(Button)findViewById(R.id.pause_btn);
  27. pause_btn.setOnClickListener(video_listener);
  28. getWindow().setFormat(PixelFormat.UNKNOWN);
  29. surfaceView=(SurfaceView)findViewById(R.id.surfaceView);
  30. surfaceHolder=surfaceView.getHolder();
  31. surfaceHolder.addCallback(this);
  32. surfaceHolder.setFixedSize(176,144);
  33. surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  34. mediaPlayer=newMediaPlayer();
  35. }
  36. privateOnClickListenervideo_listener=newOnClickListener(){
  37. @Override
  38. publicvoidonClick(Viewv){
  39. switch(v.getId()){
  40. caseR.id.play_btn:
  41. isPause=false;
  42. playVideo(path);
  43. break;
  44. caseR.id.pause_btn:
  45. if(isPause==false){
  46. mediaPlayer.pause();
  47. isPause=true;
  48. }else{
  49. mediaPlayer.start();
  50. isPause=false;
  51. }
  52. break;
  53. }
  54. }
  55. privatevoidplayVideo(Stringpath){
  56. //TODOAuto-generatedmethodstub
  57. if(mediaPlayer.isPlaying()==true){
  58. mediaPlayer.reset();
  59. }
  60. mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  61. mediaPlayer.setDisplay(surfaceHolder);
  62. try{
  63. mediaPlayer.setDataSource(path);
  64. mediaPlayer.prepare();
  65. }catch(Exceptione){
  66. //TODO:handleexception
  67. e.printStackTrace();
  68. }
  69. mediaPlayer.start();
  70. }
  71. };
  72. @Override
  73. publicvoidsurfaceCreated(SurfaceHolderholder){
  74. //TODOAuto-generatedmethodstub
  75. }
  76. @Override
  77. publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,
  78. intheight){
  79. //TODOAuto-generatedmethodstub
  80. }
  81. @Override
  82. publicvoidsurfaceDestroyed(SurfaceHolderholder){
  83. //TODOAuto-generatedmethodstub
  84. }
  85. }

更多相关文章

  1. Android(安卓)Phonebook编写联系人UI加载及联系人保存流程(四)
  2. android 编译命令
  3. [置顶] android wifi调试总结 theros AR6K命令小结 android wifi
  4. android,ExpandableList,将被选中的group置于顶端
  5. Android(安卓)Flurry使用说明
  6. [Android] 查看Android中的AlarmManager事件
  7. Cordova开发环境搭建
  8. adb通过wifi连接 milestone
  9. android MTK平台编译UBOOT学习笔记

随机推荐

  1. Android(安卓)Studio 编译报错:Could not
  2. Vue和iOS、Android交互
  3. MediaScanner
  4. android studio 使用代码混淆
  5. WINDOWS下ADB基本的教程和命令
  6. Android(安卓)通知Notification
  7. Android(安卓)如何设置默认语言
  8. Android开发——AsyncTask的使用以及源码
  9. android 8.0 (API=26) 升级适配遇到的两
  10. android游戏开发须知!