亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Activity與Service之間交互并播放歌曲的實現代碼

2020-04-11 12:04:39
字體:
來源:轉載
供稿:網友

Activity與Service之間交互并播放歌曲,為了方便,我把要播放的歌曲定死了,大家可以靈活改進
 



MService:

復制代碼 代碼如下:

package com.tiantian.test;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Binder;
import android.os.Environment;
import android.os.IBinder;
import android.util.Log;
public class MService extends Service{
    MyBinder myBinder = new MyBinder();
    private MediaPlayer mediaPlayer;

    public class MyBinder extends Binder{
        MService getService(){
            return MService.this;
        }
    }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        Log.v("CAT", "onBind");
        return myBinder;
    }
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        Log.v("CAT", "onCreate");
        try {
            mediaPlayer = new MediaPlayer();
            mediaPlayer.setDataSource(Environment.getExternalStorageDirectory() + "/mp3/trhxn.mp3");
            mediaPlayer.prepare();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            Log.v("CAT", "fail");
            e.printStackTrace();
        }
    }
    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.v("CAT", "onDestroy");
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        Log.v("CAT", "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public boolean onUnbind(Intent intent) {
        // TODO Auto-generated method stub
        Log.v("CAT", "onUnbind");
        return false;
    }

    public void start(){
        mediaPlayer.start();
    }
    public void pause(){
        mediaPlayer.pause();
    }
    public void stop(){
        mediaPlayer.stop();
        mediaPlayer.release();
    }
    public int getDuration(){
        return mediaPlayer.getDuration();
    }
    public int getCurrentPosition(){
        return mediaPlayer.getCurrentPosition();
    }
    public void seekTo(int position){
        mediaPlayer.seekTo(position);
    }
}

MusicPlayActivity:
復制代碼 代碼如下:

package com.tiantian.test;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
public class MusicPlayActivity extends Activity {
    /** Called when the activity is first created. */
    MService mService;
    private ServiceConnection conn = new ServiceConnection(){
        @Override
        public void onServiceConnected(ComponentName arg0, IBinder arg1) {
            // TODO Auto-generated method stub
            mService = ((MService.MyBinder)arg1).getService();
            Log.v("CAT", "getServiced");
        }
        @Override
        public void onServiceDisconnected(ComponentName name) {
            // TODO Auto-generated method stub
            mService = null;
        }

    };

    private SeekBar seekBar;
    private Button playBT;

    private boolean isPlaying = false;
    private boolean isBinded = false;

    private Handler mHandler;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent intent = new Intent(MusicPlayActivity.this, MService.class);
        if(!isBinded){
            bindService(intent, conn, BIND_AUTO_CREATE);
            isBinded = true;
        }
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        playBT = (Button) findViewById(R.id.startBT);
        mHandler = new Handler();
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {}

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {}

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                if(fromUser){
                    mService.seekTo((progress*mService.getDuration())/100);
                }
            }
        });
        playBT.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(!isPlaying){
                    mService.start();
                    isPlaying = true;
                    playBT.setText("暫停");
                    mHandler.post(seekBarThread);
                }else{
                    mService.pause();
                    isPlaying = false;
                    playBT.setText("播放");
                    mHandler.removeCallbacks(seekBarThread);
                }
            }
        });

    }

    Runnable seekBarThread = new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            seekBar.setProgress((mService.getCurrentPosition()*100)/mService.getDuration());
            mHandler.postDelayed(seekBarThread, 200);
        }
    };

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品在线观看视频| 欧美成人亚洲成人日韩成人| 国产精品一区二区女厕厕| 国产精品69精品一区二区三区| 亚洲天堂av综合网| 国产精品毛片a∨一区二区三区|国| 亚洲新中文字幕| 久久久综合免费视频| 成人乱色短篇合集| 一本一本久久a久久精品综合小说| 中文字幕亚洲一区在线观看| 91夜夜揉人人捏人人添红杏| 黑人巨大精品欧美一区免费视频| 欧美一级在线播放| 亚洲精品日韩激情在线电影| 国产在线98福利播放视频| 亚洲国产精品久久精品怡红院| 久久久久亚洲精品成人网小说| 欧美www视频在线观看| 欧美日韩成人在线视频| 欧美视频免费在线| 日韩有码在线观看| 久久影视电视剧免费网站| 中文字幕亚洲一区二区三区五十路| 色偷偷av亚洲男人的天堂| 国产日韩在线看| 国产精品va在线播放| 精品国产一区二区三区在线观看| 成人黄色激情网| 国产美女精品视频免费观看| 国产偷国产偷亚洲清高网站| 欧美疯狂性受xxxxx另类| 在线看片第一页欧美| 一区二区欧美亚洲| 日本19禁啪啪免费观看www| 成人亲热视频网站| 亚洲精品美女久久| 国产成人综合精品| 欧美日韩中国免费专区在线看| 欧美激情videoshd| 国产精品男女猛烈高潮激情| 欧美日韩一区二区免费视频| 亚洲www在线观看| 国产精品99久久久久久白浆小说| 欧美性生活大片免费观看网址| 亚洲精品国产拍免费91在线| 欧美精品videosex牲欧美| 国产精品极品美女在线观看免费| 国产成人精品一区二区三区| 欧美日韩激情视频| 8x拔播拔播x8国产精品| 国产成人精品免高潮在线观看| 久久亚洲私人国产精品va| 亚洲二区中文字幕| 欧美电影电视剧在线观看| 国内精品国产三级国产在线专| 久久久久久久久电影| 久久久久久国产免费| 日韩精品在线免费播放| 91在线无精精品一区二区| 国产亚洲激情视频在线| 欧美老女人性生活| 欧美高清一级大片| 亚洲欧美国产va在线影院| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲аv电影天堂网| 国产日韩精品在线播放| 亚洲精品国产综合久久| 久久这里只有精品99| 在线播放国产一区二区三区| 久久成人人人人精品欧| 成人免费观看49www在线观看| 红桃视频成人在线观看| 亚洲男人天堂九九视频| 精品中文字幕乱| 国产精品电影在线观看| 国产啪精品视频| 国产日产久久高清欧美一区| 91九色视频导航| 久久久久久久久久国产精品| 91日本在线观看| 国产精品91在线观看| 久久久这里只有精品视频| 国产精品扒开腿做爽爽爽视频| 日韩av在线精品| 亚洲一区美女视频在线观看免费| 欧美激情aaaa| 久久久久国产一区二区三区| 欧美最顶级的aⅴ艳星| 亚洲国产精品成人va在线观看| 麻豆国产va免费精品高清在线| 欧美伊久线香蕉线新在线| 国产亚洲视频中文字幕视频| 久久国产精品免费视频| 亚洲一区二区三区视频播放| 国产精品白丝jk喷水视频一区| 国产精品国内视频| 国产精品视频资源| 国产九九精品视频| 亚洲欧美精品在线| 在线观看日韩视频| 久久国产加勒比精品无码| 欧美丰满少妇xxxx| 综合网日日天干夜夜久久| 欧美精品www在线观看| 中文字幕自拍vr一区二区三区| 欧美性极品xxxx娇小| 51ⅴ精品国产91久久久久久| 亚洲综合av影视| 国外视频精品毛片| 国产欧美欧洲在线观看| 色综合色综合网色综合| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲精品美女在线| 久久影视电视剧免费网站清宫辞电视| 国产成人在线亚洲欧美| 国产欧美亚洲精品| 亚洲精品日韩激情在线电影| 一二美女精品欧洲| 亚洲3p在线观看| 午夜精品久久久久久久久久久久久| 国产69精品久久久久久| 欧美日韩成人在线视频| 色妞在线综合亚洲欧美| 午夜精品久久久久久久男人的天堂| 最新亚洲国产精品| 国产亚洲精品一区二555| 国内免费久久久久久久久久久| 欧美猛男性生活免费| 精品国产一区二区三区四区在线观看| 久久精品视频99| 不卡av电影院| 在线观看欧美www| 久久久精品免费视频| 亚洲国产精品专区久久| 色小说视频一区| 中文字幕精品影院| 高清亚洲成在人网站天堂| 欧美黑人巨大精品一区二区| 亚洲天堂色网站| 日本久久久a级免费| 欧美性生交xxxxx久久久| 在线看片第一页欧美| 另类图片亚洲另类| 色婷婷综合久久久久| 奇门遁甲1982国语版免费观看高清| 亚洲精品美女在线观看播放| 亚洲影视九九影院在线观看| 久久色在线播放| 欧美日韩xxx| 久久69精品久久久久久国产越南| 日韩久久免费视频| 日韩av在线最新| 不卡av电影在线观看| 中日韩美女免费视频网站在线观看| 久久人人爽人人爽人人片av高请| 国产精品美女久久久久久免费| 亚洲激情中文字幕| 国产精品成人观看视频国产奇米| 亚洲欧美中文字幕在线一区| 亚洲2020天天堂在线观看| 2020国产精品视频| 国产午夜精品一区理论片飘花| 成人美女av在线直播|