• 实验七


    一、实验目的及要求

    1.目的:实现启动端和BindService之间的双向通信

    2.要求:实现从启动端传递一个数据至BindService端;

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

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

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

    二、实验环境

    (1)PC机

    (2)操作系统:Windows XP

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

    三、实验内容及步骤

    1)完善Activity类

    2)新建Service类

    四、实验结果

    sudoku的musicsetting.xml的代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:layout_width="match_parent"
    
        android:layout_height="match_parent"
    
        android:orientation="vertical" >
    
     
    
        <TextView
    
            android:id="@+id/textView1"
    
            android:layout_width="wrap_content"
    
            android:layout_height="wrap_content"
    
            android:text="音量" />
    
     
    
        <SeekBar
    
            android:id="@+id/seekBar1"
    
            android:layout_width="match_parent"
    
            android:layout_height="wrap_content" />
    
     
    
        <ProgressBar
    
            android:id="@+id/progressBar1"
    
            style="?android:attr/progressBarStyleHorizontal"
    
            android:layout_width="fill_parent"
    
            android:layout_height="wrap_content"
    
            />
    
     
    
        <CheckBox
    
            android:id="@+id/checkBox1"
    
            android:layout_width="wrap_content"
    
            android:layout_height="wrap_content"
    
            android:text="静音" />
    
     
    
        <TextView
    
            android:id="@+id/textView2"
    
            android:layout_width="wrap_content"
    
            android:layout_height="0dp"
    
            android:text="" />
    
     
    
    </LinearLayout>

    sudoku的musicsetting.java部分代码:

    public class MusicBService extends Service implements MediaPlayer.OnCompletionListener {
    
       MediaPlayer player;
    
       private final IBinder binder=new AudioBinder();
    
        @Override
    
        public IBinder onBind(Intent arg0) {
    
            // TODO Auto-generated method stub
    
            return binder;
    
        }
    
        @Override
    
        public void onCompletion(MediaPlayer player) {
    
            // TODO Auto-generated method stub
    
            stopSelf();
    
        }
    
        public void onCreate(){
    
            super.onCreate();
    
            player=MediaPlayer.create(this, R.raw.model);
    
            player.setOnCompletionListener(this);
    
        }
    
        public int onStartCommand(Intent intent,int flags,int startId){
    
            if(!player.isPlaying()){
    
                player.start();
    
            }
    
            return START_STICKY;
    
        }
    
        public void onDestroy(){
    
            if(player.isPlaying()){
    
                player.stop();
    
            }
    
            player.release();
    
        }
    
        class AudioBinder extends Binder{
    
            MusicBService getService(){
    
                return MusicBService.this;
    
            }
    
        }
    
       
    
        public boolean onUnbind(Intent intent){
    
            return super.onUnbind(intent);
    
        }
    
     
    
    }
    
    }

    运行结果:(截图)

    1. sudoku项目效果图:

    五、实验总结

    通过这次试验,我对安卓编程有了全新的认识。让我对安卓软件功能的设置有了更深的了解。

  • 相关阅读:
    20190919-4 单元测试,结对
    20190919-3 效能分析
    20190919-2 功能测试
    git 和conding.net 超详细超简单安装
    html元素contenteditable属性如何定位光标和设置光标
    【分享】WeX5的正确打开方式(6)——数据组件初探
    从零开始开发一款H5小游戏(二) 创造游戏世界,启动发条
    分享一个自己写的基于canvas的原生js图片爆炸插件
    基于 HTML5 的 WebGL 技术构建 3D 场景(一)
    从零开始开发一款H5小游戏(三) 攻守阵营,赋予粒子新的生命
  • 原文地址:https://www.cnblogs.com/44ZBW/p/5454266.html
Copyright © 2020-2023  润新知