【Activity、service】点击不同的图片播放不同的声音

摘要:
51} 52@Override53protectedvoidonStop(){54Intentient=newIntent(Constant.SOND_ACTION);}@OverridepublicvotionCreate(){super.onCreate();intstartId){intplay_SOUND=getSoundId(intent);=null&

      一下,我只把主要的代码贴出来给大家,如果哪里写的不好,希望大家能多多指教,灰常感谢。

 /** 定义播放小孩声音的ACTION */
 public static String SOUND_ACTION = "com.vtion.ym.box.sound";

XxxActivity.java    Activity里面中的代码

【Activity、service】点击不同的图片播放不同的声音第1张【Activity、service】点击不同的图片播放不同的声音第2张View Code
 1     @Override
 2     public void onClick(View v) {
 3         Intent intent = new Intent(Constant.SOUND_ACTION);
 4         switch (v.getId()) {
 5         case R.id.box_bottom1_lishi:
 6             intent.putExtra("play_sound", 1);
 7             break;
 8         case R.id.box_bottom2_lishi:
 9             intent.putExtra("play_sound", 2);
10             break;
11         case R.id.box_bottom3_lishi:
12             intent.putExtra("play_sound", 3);
13             break;
14         case R.id.box_bottom4_lishi:
15             intent.putExtra("play_sound", 4);
16             break;
17         case R.id.box_bottom5_lishi:
18             intent.putExtra("play_sound", 5);
19             break;
20         case R.id.box_bottom6_lishi:
21             intent.putExtra("play_sound", 6);
22             break;
23         case R.id.box_bottom7_lishi:
24             intent.putExtra("play_sound", 7);
25             break;
26         case R.id.box_bottom8_lishi:
27             intent.putExtra("play_sound", 8);
28             break;
29         case R.id.box_bottom9_lishi:
30             intent.putExtra("play_sound", 9);
31             break;
32         case R.id.box_bottom10_lishi:
33             intent.putExtra("play_sound", 10);
34             break;
35         case R.id.box_bottom11_lishi:
36             intent.putExtra("play_sound", 11);
37             break;
38         case R.id.box_bottom12_lishi:
39             intent.putExtra("play_sound", 12);
40             break;
41         case R.id.box_bottom13_lishi:
42             intent.putExtra("play_sound", 13);
43             break;
44         case R.id.box_bottom14_lishi:
45             intent.putExtra("play_sound", 14);
46             break;
47         default:
48             break;
49         }
50         startService(intent);
51     }
52     @Override
53     protected void onStop() {
54         Intent intent = new Intent(Constant.SOUND_ACTION);
55         stopService(intent);
56         super.onStop();
57     }


XxxService.java    Service里面中的代码

【Activity、service】点击不同的图片播放不同的声音第3张【Activity、service】点击不同的图片播放不同的声音第4张View Code
public class SoundService extends Service {
    
    private MediaPlayer mediaplayer;

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
    @Override
    public void onCreate() {
        super.onCreate();
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        int play_sound = getSoundId(intent);
        if (play_sound != 0) {
            if (mediaplayer != null && mediaplayer.isPlaying()) {
                mediaplayer.stop();
                mediaplayer.release();
                mediaplayer = null;
                mediaplayer = MediaPlayer.create(this, play_sound);
                mediaplayer.start();
            } else if (mediaplayer != null && !mediaplayer.isPlaying()) {
                mediaplayer = MediaPlayer.create(this, play_sound);
                mediaplayer.start();
            } else {
                mediaplayer = MediaPlayer.create(this, play_sound);
                mediaplayer.start();
            }
        }
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        try {
            if (mediaplayer != null || mediaplayer.isPlaying())  {
                mediaplayer.stop();
                mediaplayer.release();
                mediaplayer = null;                
            }
        } catch (Exception e) {
            Log.i("SERVICE", e.getMessage());
        }
    }
    /** 得到声音的Id */
    private int getSoundId(Intent intent) {
        int musicId = 0;
        if(intent != null){
            musicId = intent.getIntExtra("play_sound", -1);
        }
        switch (musicId) {
        case 1:
            return R.raw.wawa_01;
        case 2:
            return R.raw.wawa_02;
        case 3:
            return R.raw.wawa_03;
        case 4:
            return R.raw.wawa_04;
        case 5:
            return R.raw.wawa_05;
        case 6:
            return R.raw.wawa_06;
        case 7:
            return R.raw.wawa_07;
        case 8:
            return R.raw.wawa_08;
        case 9:
            return R.raw.wawa_09;
        case 10:
            return R.raw.wawa_10;
        case 11:
            return R.raw.wawa_11;
        case 12:
            return R.raw.wawa_12;
        case 13:
            return R.raw.wawa_13;
        case 14:
            return R.raw.wawa_14;
        default:
            return 0;
        }
    }

}

AndroidManifest.xml

【Activity、service】点击不同的图片播放不同的声音第5张【Activity、service】点击不同的图片播放不同的声音第6张View Code
        <service android:name=".box.service.SoundService">
            <intent-filter >
                <action android:name="com.vtion.ym.box.sound" />
                <category android:name="android.intent.category.default" />
            </intent-filter>
        </service>

免责声明:文章转载自《【Activity、service】点击不同的图片播放不同的声音》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何通俗的解释仿射变换?linux中class_create和class_register说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Calendar Provider

英文原文:http://developer.android.com/guide/topics/providers/calendar-provider.html 关键类 CalendarContract.Calendars CalendarContract.Events CalendarContract.Attendees CalendarContrac...

APP漏洞自动化扫描专业评测报告

一、前言 目前在业界有很多自动化检测APP安全性的在线扫描平台。为了了解目前国内移动APP在线漏洞扫描平台的发展情况,我进行了一次移动安全扫描平台的评测分析;主要从漏洞项对比、扫描能力对比以及扫描结果这三个方向来对比。 希望此次的调研结果可以为读者提供更加可靠的安全漏洞扫描服务建议。 二、分析对象 这一章主要介绍需要对比的扫描平台和需要测试的APP样本。...

【Android实验】组件通信Intent

实验目的 目录 实验目的 实验要求 实验结果 实验代码 father.xml:主界面文件 content_child.xml:子界面 Fourth.java: 处理文件 ChildActivity.java: 子界面处理文件 实验总结 了解使用Intent进行组件通信原理 掌握使用Intent启动Activity的方法 熟悉和掌握A...

Android应用的电量消耗和优化的策略

 对于Android移动应用的开发者来说,耗电量的控制一直是个老大难问题。      我们想要控制耗电量,必须要有工具或者方法比较准确的定位应用的耗电情况。下面,我们先来分析下如何计算android应用的耗电量。    在android自带的设置里面有电量计算的界面,如下图: <ignore_js_op>    我们看下是如何实现的:​    ...

转载 Android之网络与通信

2.三种网络接口简述2.1标准Java接口java.net.*提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。使用java.net.*包连接网络代码:Java代码 收藏代码try{ //定义地址 URL url=newURL("http://www.google.com"); //打开连接 HttpURLConn...

Android实现开机自动运行程序(转)

  有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service。怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don''t call me, I''ll call you back!”总结Android框架,真是说到点子上了。理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解。使用场景:...