实验6 在应用程序中播放音频和视频

实验报告


课程名称


基于Android平台移动互联网开发


实验日期


4月15日


实验项目名称


在应用程序中播放音频和视频


实验地点


S3002


实验类型


□验证型    √设计型    □综合型


学  时


一、实验目的及要求(本实验所涉及并要求掌握的知识点)


实现在应用程序中处理音频和视频。

【要求】

1) 实现播放音频,音频播放控制;

2) 实现播放视频,视频播放控制;

3) 使用Service服务播放项目源文件中的音乐。


二、实验环境(本实验所使用的硬件设备和相关软件)


(1)PC机

(2)操作系统:Windows XP

(3)软件: Eclipse, JDK1.6,Android SDK,ADT


三、实验内容及步骤


1)新建工程

2)修改布局文件main.xml

3)完善Activity类

/***

* 这个类主要用来测试调用Andriod.media.MediaPlayer包里面的函数实现音乐播放的功能,

* 分别播放了工程中资源文件中的音乐文件、本地文件系统中的文件,以及网络上的音乐;

* 视频播放功能,使用了VideoView控件;

* 代码中指定了本地文件系统中音频和视频文件的路径,在测试本程序前请按照代码中的路径和音频、视频文件的名称在手机中添加文件;

(4)新建Service类,使用Service服务播放项目源文件中的音乐,实现后台继续能播放音频。


四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)


代码:

1.MainActivity

package com.example.mediapiayer;

import java.io.File;

import java.io.IOException;

import android.media.MediaPlayer;

import android.media.MediaPlayer.OnCompletionListener;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity {

public MediaPlayer myPlayer1 = new MediaPlayer();

private Button bt1, bt2, bt3, bt4, bt5, bt6;

private TextView mTextView1;

private String uri = "http://bd.kuwo.cn/yinyue/2324240";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTextView1 = (TextView) findViewById(R.id.textView1);

bt1 = (Button) findViewById(R.id.button1);

bt2 = (Button) findViewById(R.id.button2);

bt3 = (Button) findViewById(R.id.button3);

bt4 = (Button) findViewById(R.id.button4);

bt5 = (Button) findViewById(R.id.button5);

bt6 = (Button) findViewById(R.id.button6);

bt1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

try {

if (myPlayer1.isPlaying() == true) {

myPlayer1.reset();

}

myPlayer1 = MediaPlayer.create(MainActivity.this,

R.raw.song);

myPlayer1.start();

mTextView1.setText(R.string.str_start);

} catch (IllegalStateException e) {

mTextView1.setText(R.string.str_stop);

e.printStackTrace();

}

}

});

bt2.setOnClickListener(new OnClickListener() {

String sdCard = Environment.getExternalStorageDirectory().getPath();

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

try {

if (myPlayer1.isPlaying() == true) {

myPlayer1.reset();

}

myPlayer1.setDataSource(sdCard + File.separator

+ "F.I.R. - yueyawan.mp3");

myPlayer1.prepare();

myPlayer1.start();

mTextView1.setText(R.string.str_tishi);

} catch (IllegalStateException e) {

mTextView1.setText(R.string.str_stop);

e.printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SecurityException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

bt3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

myPlayer1.reset();

try {

myPlayer1.setDataSource(uri);

}

catch (IllegalArgumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SecurityException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));

startActivity(intent);

mTextView1.setText(R.string.str_wangluo);

}

});

bt4.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

myPlayer1.stop();

mTextView1.setText(R.string.str_finished);

}

});

bt5.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

}

});

bt6.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

myPlayer1.stop();

mTextView1.setText(R.string.str_jieshu);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

2.activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:background="@drawable/u311593540665946679fm15gp0"

tools:context=".MainActivity" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:text="测试多媒体播放" />

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button2"

android:layout_alignRight="@+id/button2"

android:layout_below="@+id/textView1"

android:layout_marginTop="26dp"

android:text="播放源文件中的音乐" />

<Button

android:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button2"

android:layout_alignRight="@+id/button2"

android:layout_below="@+id/button2"

android:text="播放网络上的音乐" />

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button1"

android:layout_centerHorizontal="true"

android:text="播放本地文件系统中的音乐" />

<Button

android:id="@+id/button4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/button5"

android:layout_alignBottom="@+id/button5"

android:layout_alignLeft="@+id/button3"

android:text="停止播放" />

<Button

android:id="@+id/button5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button3"

android:layout_toRightOf="@+id/button4"

android:text="播放视频" />

<Button

android:id="@+id/button6"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/button3"

android:layout_toRightOf="@+id/button5"

android:text="退出" />

</RelativeLayout>

运行结果:(截图)

1.

2.


五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)


通过实验学会了Android通过调用Andriod.media.MediaPlayer包里面的函数来控制媒体文件的播放,实现选文件、本地SD卡和网络上进行音频的播放。加深了对安卓开发的理解。


实验评语


 


实验成绩


 


指导教师签名:                    

时间: 2024-10-11 16:28:31

实验6 在应用程序中播放音频和视频的相关文章

实验六 在应用程序中播放音频和视频

实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016年4月15日 实验项目名称 在应用程序中播放音频和视频 实验地点 S30010 实验类型 □验证型    √设计型    □综合型 学  时 2 一.实验目的及要求(本实验所涉及并要求掌握的知识点) 1.实现在应用程序中处理音频和视频. 2.实现播放音频,音频播放控制: 3. 实现播放视频,视频播放控制: 4. 使用Service服务播放项目源文件中的音乐. 二.实验环境(本实验所使用的硬件设备和相关软件) (1)PC机

实验6 在应用程序中播放音频和视屏

实验报告 课程名称 基于Android平台移动互联网开发 实验日期 4.15 实验项目名称 在应用程序中播放音频和视屏 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 1学时 一.实验目的及要求(本实验所涉及并要求掌握的知识点) 实现在应用程序中处理音频和视频 实现播放音频,音频播放控制 实现播放视屏,视屏播放控制 使用service服务播放项目原文件的音乐 二.实验环境(本实验所使用的硬件设备和相关软件) (1)PC机 (2)操作系统:Windows XP

Xamarin的播放音频和视频的媒体管理插件

媒体应用程序比其他应用程序更受益于与本地平台一起工作.有些事情,比如处理音频焦点的中断.网络连接以及通知和其他回放控件之间的通信,这是一件复杂的事情. 为使Xamarin开发访问这些本地平台的功能,我们决定建立一个跨平台的Xamarin插件,抽象了困难.我们使用诱饵和开关模式创建了一个可移植类库,它包含了本机代码的所有接口,在应用程序中共享基类,使你尽可能轻松地在你的手机应用程序中与音频和视频交互. Xamarin媒体管理插件 设计简单易用,具有以下特点: 从远程和本地源本地播放媒体文件 本地媒

网页中创建音频、视频和Flash等多媒体:object元素

<object>元素:它主要用于定义网页中的多媒体,比如音频.视频.Java applets.PDF.ActiveX和Flash.Object标签是成对出现的,在object标签内可以使用param标签等.Object标签内除了param标签外,其它的内容将在浏览器不支持object标签时显示.注意,在HTML5尚未制定完成且普及时,最好使用flash在网页中播放音频和视频,以保证最大兼容性 Object标签的主要可选属性: type -> 被规定在data属性中指定的文件中出现的数据的

Html5之高级-5 HTML5音频处理(在H5中播放音频、编程实现音频播放器)

一.在HTML5中播放音频 audio 元素 - audio元素可以实现在HTML页面中嵌入音频内容,该元素的属性可以设置是否自动播放.预加载及循环播放等 - audio元素提供了播放.暂停和音量控件来控制音频 - 使用audio元素提供三种音频格式的文件:MP3.Ogg.Wav - MP3: 采用mpeg音频解码器 - Ogg: 采用ogg音频解码器 - Wav: 采用wav音频解码器 - 语法结构 audio 属性 - audio 元素支持以下属性 - src: 指定播放文件的URL,可通过

使用系统类播放音频和视频

iOS的系统类中提供了用于播放音频和视频的类,支持常见的多媒体格式 ? 框架支持:MediaPlayer.framework, ? ?AVFoundation.framework 1.音频 类: AVAudioPlayer ? 支持格式:?AAC,AMR,ALAC,iLBC,IMA4,PCM,MP3 初始化方法: initWithContentOfURL: error: initWithDate: error:? ? file type hint:是一个在AVMEdiiaFormat.h中声明的

网页上播放音频、视频Mp3,Mp4

昨天在处理网页上播放音频mp3,视频mp4上用了一天的时间来比较各种方案,最终还是选择了HTML5的 标签,谷歌浏览器.IE浏览器对标签的支持都很好,火狐上需要安装quicktime插件,效果比较差. <embed type="audio/mpeg" src="demo.mp3" style="width:400px; height:100px; border:3px solid black;" /> <embed src=&q

在浏览器中播放音频文件的兼容性问题

来源:http://blog.sina.com.cn/s/blog_96ae64bd0100zk9r.html 下面谈谈本人在html中插入音频文件,经过我的本地测试总结的一些问题(播放mp3文件): 1.<embed type="audio/mp3" src="" autostart=true  loop=false></embed>    问题:IE8上正常(通过media player插件来播放)但在IE6和IE7上不会播放      

关于iphone自动播放音频和视频问题的解决办法

大家都知道 做移动端 会遇到音频和视频无法自动播放问题(我也遇到了)于是想办法解决这个问题 我只是找到了在微信中解决的办法(如果谁有在别的浏览器有这个办法  请私聊我 )我是没有发现 document.getElementById('demo').play(); //必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效 document.addEventListener("WeixinJSBridgeReady", function () { docume