实验7 201306114104彭得源

实验报告


课程名称


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


实验日期


16/03/25


实验项目名称


实验7


实验地点


S3010


实验类型


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


学  时


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


实现启动端和BindService之间的双向通信

1)   实现从启动端传递一个数据至BindService端;

2)   实现使用BindService服务播放项目源文件中的音乐;

3)   实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。

4)   实现在启动端通过“暂停”按钮控制音频暂停播放。


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


Android资源管理机制。


三、实验内容及步骤

  1. 参考教案,理解BindService和启动端的通信原理
  2. AudioManager的理解

AudioManager类位于android.Media 包中,该类提供访问控制音量和铃声模式的操作。

通过getSystemService(Context.AUDIO_SERVICE)方法获得AudioManager实例对象。

AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);

audiomanager就是我们定义的控制系统声音的对象。

几个比较常用到的方法:

1)    adjustVolume(int direction, int flags):用来控制手机音量大小,当传入的第一个参数为AudioManager.ADJUST_LOWER 时,可将音量调小一个单位,传入AudioManager.ADJUST_RAISE时,则可以将音量调大一个单位。

2)    adjustStreamVolume(intstreamType, int direction, intflags):(以步长)调节手机音量大小

参数1:声音类型,可取为STREAM_VOICE_CALL(通话)、STREAM_SYSTEM(系统声音)、STREAM_RING(铃声)、STREAM_MUSIC(音乐)、STREAM_ALARM(闹铃声)

参数2:调整音量的方向,可取ADJUST_LOWER(降低)、ADJUST_RAISE(升高)、ADJUST_SAME
参数3:可选的标志位

3)    setStreamVolume(intstreamType, int index, intflags):直接设置音量大小

4)    getStreamVolume(intstreamType):取得当前手机的音量,最大值为7,最小值为0,当为0时,手机自动将模式调整为“震动模式”。

5)    setStreamMute(intstreamType, boolean state):设置静音


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


代码:实验代码

package
com.example.sudoku04;

import android.app.Service;

import
android.content.Context;

import
android.content.Intent;

import
android.media.AudioManager;

import
android.media.MediaPlayer;

import
android.os.Binder;

import
android.os.IBinder;

public class
Myservice extends Service{

private MediaPlayer mp=new MediaPlayer();

int volume;

AudioManager manager = (AudioManager)
getSystemService(Context.AUDIO_SERVICE);

public class mybind extends Binder{

public int getcount(){

return volume;

}

}

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

mp=MediaPlayer.create(Myservice.this,
R.raw.nan);

mp.start();

volume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

mp.stop();

}

}

 

运行结果:(截图)


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


有点难,数据传送总是崩溃,还没解决!

喜欢下次老师可以一边讲我们一边做,老师把演示窗口化,我们就可以跟着老师的步骤一边听一边做了。


实验评语


 


实验成绩


 


指导教师签名:              年   月   日

           
时间: 2024-08-05 13:42:15

实验7 201306114104彭得源的相关文章

实验8 201306114104彭得源

实验报告 课程名称 基于Android平台移动互联网开发 实验日期 16/05/08 实验项目名称 实验8 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 一.实验目的及要求(本实验所涉及并要求掌握的知识点) 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. 程序主界面是通讯录的目录显示手机上联系人的名称.点击联系人的姓名可以显示联系人的详细信息.在按了MEMU键之后会弹出菜单栏.单击菜单栏上的按

实验五 04彭得源

#include"stdio.h" #include"stdlib.h" #include"time.h" struct wuli{ int wuli_number; char pname; /*已分配区表登记栏标志,用"0"表示空栏目*/ }; /*内存表*/ struct wuli wuli_table[20]={0}; struct page{ char pname;//进程名称 int psize;//进程大小 int

实验二,04彭得源

#include <stdio.h> #define n 20 struct fcfs { int id; //进程名 int gt; //进程到达时间 int runt; //进程运行时间 int ft; //进程完成时间 int rt; //进程周转时间 }f[n]; void main() { int amount,i,j,l,k; struct fcfs f[n]; printf("请输入进程个数:\n"); scanf("%d",&am

实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看 第5章 [摘要]这是一篇关于人脸识别方法的实验报告.报告首先回顾了人脸识别研究的发展历程及基本分类:随后对人脸识别技术方法发展过程中一些经典的流行的方法进行了详细的阐述:最后作者通过设计实验对比了三种方法的识别效果并总结了人脸识别所面临的困难与

Java实验二实验报告 20135108 李泽源

北京电子科技学院(BESTI) 实     验    报     告 课程:Java 班级: 1351    姓名:李泽源   学号:20135108 成绩:              指导教师:娄嘉鹏   实验日期:2015.5.8 实验密级:          预习程度:          实验时间:15:30~18:00 仪器组次:27         必修/选修:选修     实验序号:02 实验名称: Java面向对象程序设计 实验目的与要求:    1. 初步掌握单元测试和TDD 2

试验一,04彭得源

#include<stdio.h> #include<string.h> main() { char a[10]="help"; char b[10]="quit"; char c[10]; while(1){ printf("please enter the command: "); scanf("%s",c); if(strcmp(c,a)==0) printf("dir\ncd\nmd\

04彭得源

#include<stdio.h> #include<string.h> main() { char liangzu[30][30]={"dir","cd","md","rd","cls","date","time","ren","copy","help","quit&quo

信息安全系统设计基础实验五:通讯协议设计

北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:52.53 姓名:王思亓 赵阳林 学号:20135205 20135334 成绩: 指导教师:娄嘉鹏 实验日期:2015.11.24 实验密级: 预习程度: 实验时间:15:30—18:00 仪器组次: 必修/选修:必修 实验序号: 实验名称:通讯协议设计 实验目的与要求:1.掌握在ARM开发板实现一个简单的WEB服务器的过程.2.学习在ARM开发板上的SOCKET网络编程.3.学习Linux下的signal()函

Linux内核如何装载和启动一个可执行程序-----实验7

2015108 李泽源 Linux内核如何装载和启动一个可执行程序 理解编译链接的过程和ELF可执行文件格式,详细内容参考本周第一节: 编程使用exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态链接,编程练习动态链接库的这两种使用方式,详细内容参考本周第二节: 使用gdb跟踪分析一个execve系统调用内核处理函数sys_execve ,验证您对Linux系统加载可执行程序所需处理过程的理解,详细内容参考本周第三节:推荐在实验楼Linux虚拟机环境下完成实验.