实验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();

     }

 

}

 

 

运行结果:(截图)

 

 

 

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

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

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

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

           

 

posted on 2016-05-03 23:47  04彭得源  阅读(213)  评论(0编辑  收藏  举报