zoukankan      html  css  js  c++  java
  • 实验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();

         }

     

    }

     

    运行结果:(截图)

     

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

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

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

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/leon-pang/p/5456959.html
Copyright © 2011-2022 走看看