




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验十四Android多媒体【实验类型】设计性 【实验要求】必做【实验目的】1 掌握综合运用前面所学知识的能力。2 编写一个音频和视频播放器。Android 提供了MediaPlayer 和 MediaRecorder 两个工具类,帮助开发者操作音频视频。一、简单音乐播放器1、新建一个项目Lesson28_Music , 主 Activity 的名字是 MainMusic.java2、拷贝几张图片到res/drawable目录下,并建立3个xml文件,拷贝*.mp3(自选音乐文件)到res/raw文件中。Play.xml:selector id=/apk/res/android item android:drawable=drawable/play_disable android:android:state_enabled=false Pause.xml:selector id=/apk/res/android item android:drawable=drawable/pause_disable android:android:state_enabled=false Stop.xml:selector id=/apk/res/android item android:drawable=drawable/stop_disable android:android:state_enabled=false 3、res/layout/main.xml 的内容如下: 4、MainMusic.java:package android.basic.lesson28;import java.io.IOException;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.media.MediaPlayer.OnPreparedListener;/ 以上四个包是音频播放新加的import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageButton;import android.widget.Toast;public class MainMusic extends Activity / 声明变量play, pause, stop,见前面的三个xmlprivate ImageButton play, pause, stop;private MediaPlayer mPlayer;/* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);/ 定义UI组件play = (ImageButton) findViewById(R.id.imageButton1);pause = (ImageButton) findViewById(R.id.imageButton2);stop = (ImageButton) findViewById(R.id.imageButton3);/ 按钮先全部失效play.setEnabled(false);pause.setEnabled(false);stop.setEnabled(false);/ 定义单击监听器OnClickListener ocl = new View.OnClickListener() public void onClick(View v) switch (v.getId() case R.id.imageButton1:/ 播放Toast.makeText(MainMusic.this, 点击播放,Toast.LENGTH_SHORT).show();play();break;case R.id.imageButton2:/ 暂停Toast.makeText(MainMusic.this, 暂停播放,Toast.LENGTH_SHORT).show();pause();break;case R.id.imageButton3:/ 停止Toast.makeText(MainMusic.this, 停止播放,Toast.LENGTH_SHORT).show();stop();break;/ 绑定单击监听play.setOnClickListener(ocl);pause.setOnClickListener(ocl);stop.setOnClickListener(ocl);/ 初始化initMediaPlayer();/ 初始化播放器private void initMediaPlayer() / 定义播放器mPlayer = MediaPlayer.create(getApplicationContext(),AndroidUtils.getFileinSD(*.mp3);/sd卡读取音乐文件,*由自己选择音乐/ 定义资源准备好的监听器mPlayer.setOnPreparedListener(new OnPreparedListener() public void onPrepared(MediaPlayer mp) / 资源准备好了再让播放器按钮有效Toast.makeText(MainMusic.this, onPrepared,Toast.LENGTH_SHORT).show();play.setEnabled(true););/ 定义播放完成监听器mPlayer.setOnCompletionListener(new OnCompletionListener() public void onCompletion(MediaPlayer mp) Toast.makeText(MaToast.LENGstop(););/ 停止播放private void stop() mPlayer.stop();pause.setEnabled(false);stop.setEnabled(false);try mPlayer.prepare();mPlayer.seekTo(0);play.setEnabled(true) catch (IllegalStateExce.printStackTrace(); catch (IOException e) e.printStackTrace();/ 播放private void play() mPlayer.start();play.setEnabled(false);pause.setEnabled(true);stop.setEnabled(true);/ 暂停private void pause() mPlayer.pause();play.setEnabled(true);pause.setEnabled(false);stop.setEnabled(true);/ Activity销毁前停止播放Overrideprotected void onDestroy() super.onDestroy();if(stop.isEnabled( ) stop( );5、运行程序,查看效果Android中的Toast是一种简易的消息提示框。Toast是一个包含用户点击消息。Toast类会帮助你创建和显示这些。当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可 能是在中间键入别的东西。Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,Toast会根 据用户设置的显示时间后自动消失。使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象。使用需引入包:import android.widget.Toast;二、简单视频播放器Android为视频播放器提供了VideoView和MediaController两个现成的组件,可以方便实现MP4、3GP等视频播放。1、 新建一个项目Lesson28_Video2、 使用FormatFactory软件压缩一个视频备用,压缩参数如下:如果播放时完全无法播放或只有声音没有图像,需要更换压缩软件和调整压缩参数重新压缩视频。用命令行的方式拷贝此视频到存储卡(sdcard)中,eclipse中的可视化工具拷贝不好用,命令为adb push .3、reslayoutmain.xml4、MainVideo.java:package android.basic.lesson28;import android.app.Activity;import .Uri;import android.os.Bundle;import android.widget.MediaController;import android.widget.VideoView;public class MainVideo extends Activity /* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);/ 定义UI组件VideoView videoView = (VideoView) findViewById(R.id.videoView1);/ 定义MediaController对象MediaController mediaController = new MediaController(this);/ 把MediaController对象绑定到VideoView上mediaController.setAnchorView(videoView);/ 设置VideoView的控制器是mediaControllervideoView.setMediaController(mediaController);/ 这两种方法都可以 videoView.setVideoPath(file:/sdcard/l*.mp4);/*由自己选择音乐videoView.setVideoURI(Uri.parse(/sdcard/*.mp4);/ 启动后就播放videoView.start();5、运行效果如下:2布局文件main.xml:3、主程序文件MainActivity.java的代码如下:package android.basic.lession28;import java.io.File;import java.io.IOException;import java.util.Calendar;import java.util.Locale;import android.app.Activity;import android.media.MediaRecorder;import android.os.Bundle;import android.text.format.DateFormat;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainRecord extends Activity private Button recordButton;private Button stopButton;private MediaRecorder mr;/* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);recordButton = (Button) this.findViewById(R.id.button1);stopButton = (Button) this.findViewById(R.id.button2);/ 录音按钮点击事件recordButton.setOnClickListener(new View.OnClickListener() public void onClick(View v) File file = new File(/sdcard/+ YY+ DateFormat.format(yyyyMMdd_hhmmss,Calendar.getInstance(Locale.CHINA) + .amr);Toast.makeText(getApplicationContext(), 正在录音,录音文件在+file.getAbsolutePath(), Toast.LENGTH_LONG).show();/ 创建录音对象mr = new MediaRecorder();/ 从麦克风源进行录音mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);/ 设置输出格式mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);/ 设置编码格式mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);/ 设置输出文件mr.setOutputFile(file.getAbsolutePath();try / 创建文件file.createNewFile();/ 准备录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论