实验报告

课程名称

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

实验日期

2016年4月15日

实验项目名称

设计一个简单登陆界面

实验地点

S3010

实验类型

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

学  时

4

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

【目的】

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

【要求】

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

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

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

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

(1)PC机

(2)操作系统:Windows XP

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

三、实验内容及步骤

1)新建工程Music

2)修改布局文件activity_main.xml,添加videoview.xml文件

3)修改MainActivity.java,新建 VideoViewActivity.java

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

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

代码:

HelpActivity

package com.example.sukodu;import java.io.File;
import java.io.IOException;import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;public class HelpActivity extends Activity {Button btnMusics, btnPause, btnStop, btnLocalmc, btnsermcst, btnsermcsp,btnvedio;MediaPlayer mplayer = new MediaPlayer();VideoView vediov;Intent itse = new Intent();boolean start = true;File file;@SuppressLint({ "NewApi", "CutPasteId" })public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.help);ActionBar abar = getActionBar();btnMusics = (Button) findViewById(R.id.help_sourcemusic);btnPause = (Button) findViewById(R.id.help_pause);btnsermcst = (Button) findViewById(R.id.help_servermusic);btnsermcsp = (Button) findViewById(R.id.help_serverstop);btnStop = (Button) findViewById(R.id.help_stop);btnLocalmc = (Button) findViewById(R.id.help_localemusic);vediov=(VideoView) findViewById(R.id.helpVideo);btnvedio=(Button) findViewById(R.id.help_vedio);abar.setDisplayShowHomeEnabled(true);abar.setDisplayHomeAsUpEnabled(true);btnvedio.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubMediaController mc=new MediaController(HelpActivity.this);File file=new File(Environment.getExternalStorageDirectory().getPath()+"/aabb.mp4");vediov.setVideoPath(file.getAbsolutePath());vediov.setMediaController(mc);vediov.requestFocus();vediov.start();}});btnPause.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (mplayer.isPlaying()) {mplayer.pause();}}});btnStop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (mplayer.isPlaying()) {mplayer.stop();start = true;}}});btnLocalmc.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfile = new File(Environment.getExternalStorageDirectory().getPath()+"/nanshannan.mp3");try {mplayer.reset();mplayer.setDataSource(file.getAbsolutePath());Toast.makeText(HelpActivity.this, file.getAbsolutePath(),Toast.LENGTH_LONG).show();mplayer.prepare();mplayer.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();}}});btnMusics.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif (mplayer == null || start) {mplayer.reset();mplayer = new MediaPlayer();mplayer = MediaPlayer.create(HelpActivity.this,R.raw.nanshannan);mplayer.start();start = false;} else if (mplayer != null) {mplayer.start();}}});btnsermcst.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubitse.setClass(HelpActivity.this, MyService.class);startService(itse);}});btnsermcsp.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub
                stopService(itse);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stub
        getMenuInflater().inflate(R.menu.actionbar, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubIntent intent = getIntent();switch (item.getItemId()) {case android.R.id.home: {finish();break;}case R.id.about: {intent.setClass(this, SecondActivity.class);startActivity(intent);finish();break;}case R.id.newgame: {intent.setClass(this, GamesActivity.class);startActivity(intent);finish();break;}default: {break;}}return super.onOptionsItemSelected(item);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubif (mplayer.isPlaying()) {mplayer.stop();}if(vediov.isPlaying()){vediov.stopPlayback();}super.onDestroy();}}

MyService

package com.example.sukodu;import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.IBinder;public class MyService extends Service{MediaPlayer mplayer;boolean start = true;@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stub
mplayer = new MediaPlayer();mplayer = MediaPlayer.create(this,R.raw.nanshannan);mplayer.setOnCompletionListener(new OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer mp) {// TODO Auto-generated method stub
                    }});super.onCreate();}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {// TODO Auto-generated method stub
    mplayer.start();return super.onStartCommand(intent, flags, startId);
}public void onDestroy() {// TODO Auto-generated method stub
     mplayer.stop();super.onDestroy();
}}

运行结果:(截图)

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

经过本次的实验,对Android应用程序的结构有了一定的了解,从中懂得了一些安卓界面结构的编写方法,但对于android的具体结构了解还是很表面,日后需要多看,多练编写android程序。

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

           

转载于:https://www.cnblogs.com/cckuang/p/5419155.html

实验6 在应用程序中播放音频和视频相关推荐

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

    课程名称 基于Android平台移动互联网开发 实验日期 2016年4月15日 实验项目名称 数独游戏界面设计 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 一. ...

  2. java在程序中加入音频_在任意Java程序中播放音频

    音频文件有多种格式.Java程序能够播放WAV,AIFF,MIDI,AU和RMF格式的声音文件. 要在Java中播放音频文件,应该先为声音文件创建一个音频剪辑对象(audio clip object) ...

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

    媒体应用程序比其他应用程序更受益于与本地平台一起工作.有些事情,比如处理音频焦点的中断.网络连接以及通知和其他回放控件之间的通信,这是一件复杂的事情. 为使Xamarin开发访问这些本地平台的功能,我 ...

  4. Android学习-运用手机多媒体-通知使用技巧、调用摄像头拍照、从相册中选取照片、播放音频和视频文件(MediaPlayer、VideoView)

    android提供了一系列的API,使得我们可以在程序中调用很多的多媒体资源,从而编写出更加丰富多彩的应用程序. 使用通知 通知(Notification)是Android系统中比较有特色的一个功能, ...

  5. 如何实现在直播中播放音频文件

    在我们看直播的时候,经常会在直播过程中听到有掌声.口哨声.背景音乐等音效,那么这些声音特效是如何实现的呢大家有没有想过?anyRTC下面就为大家简单介绍一下如何实现在直播过程中播放音频文件. 功能描述 ...

  6. 微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签

    微信小程序中播放海康萤石云HLS '.m3u8'视频 video标签 前言 萤石云开放平台 微信开发者工具 前言 因为项目需要在微信小程序上展示实时视频流信息,以下内容是我将萤石云平台官方文档和自己实 ...

  7. 如何在c语言中播放音频

    要在 C 语言中播放音频,你可以使用一些库函数,例如 OpenAL,SDL 或者 PortAudio. 这些库都可以在 C 语言中使用,它们提供了与播放音频相关的函数. 例如,使用 OpenAL 库可 ...

  8. 实验四 获取C程序中一个逻辑地址对应的物理地址

    实验四 获取C程序中一个逻辑地址对应的物理地址 目录 实验四 获取C程序中一个逻辑地址对应的物理地址 实验环境 一.实验目的 二.实验内容 三.实验步骤 四.实验总结 实验环境 操作系统版本:ubun ...

  9. android播放mp3方法,Android之MediaPlayer播放音频与视频

    本节带来的是Android多媒体中的--MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放 ...

最新文章

  1. 笨办法学C 练习22:栈、作用域和全局
  2. [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...
  3. 论文浅尝 | 面向跨语言实体对齐的知识图谱与实体描述协同嵌入方法
  4. jar包上传maven私服出错Cannot deploy artifact from the local repository
  5. 【实例】原生 js 实现全屏滚动效果
  6. Mac实用软件及功能总结
  7. 国标GB28181协议国标平台EasyGBS客户端作为上级平台如何跟下级海康8700平台对接?
  8. MySQL命令行登录数据库
  9. java itex 打印pdf_【收藏】java使用ITEXT打印PDF
  10. flutter 国际化(组件英文转中文)
  11. (八十三)第三方类库不支持64位处理器的解决方法
  12. Body estimation 代码复现之:结合 keras 对 Stack Hourglass 网络架构分析(全网最详细分析)
  13. 用数字万用表精确测量小电阻
  14. window系统设置系统变量
  15. ehviewer_ehviewer1.7.7
  16. 中国银联mPOS通用技术安全分析和规范解读
  17. 【日常学习】【二分】【单调队列优化线性DP】codevs3342 绿色通道题解
  18. UOS下的任务管理器 ---- 【系统监视器】
  19. Android 滑动拼图验证码控件
  20. 【模拟】智能T9英文输入法

热门文章

  1. jQuery源码分析-each函数
  2. Linq to SQL Like Operator(转)
  3. 老板评价下属的普遍性原则
  4. 阿里巴巴Java“代码反潜机”P3C喜提首届中国优秀开源项目二等奖!
  5. node + express + mysql 搭建后台
  6. Javascript Symbol 隐匿的未来之星
  7. ArcGIS Desktop 10.1安装教程
  8. iOS - OC NSSize 尺寸
  9. 百度地图infowindow
  10. 第14课:Spark RDD解密