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

         }

     

    }

     

    运行结果:(截图)

     

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

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

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

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    WEB前端第六十二课——自封装Ajax、跨域、分页
    WEB前端第六十一课——xhr对象POST请求、xhr兼容性、timeout、progress
    WEB前端第六十课——原生Ajax与HTTP协议
    WEB前端第五十九课——时间戳、数据交互小案例
    考研日记录
    云栖大会day2 下午
    云栖大会day2总结 上午
    云栖大会day1 下午
    云栖大会day1 上午
    学习记录3
  • 原文地址:https://www.cnblogs.com/leon-pang/p/5456959.html
Copyright © 2020-2023  润新知