亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mediaplaybackactivity.java

?? Android平臺上的media player, iPhone風格
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.android.imusic;import android.app.Activity;import android.app.AlertDialog;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.IntentFilter;import android.content.ServiceConnection;import android.content.pm.ActivityInfo;import android.content.pm.PackageManager;import android.content.pm.PackageManager.NameNotFoundException;import android.graphics.Bitmap;import android.media.AudioManager;import android.media.MediaFile;import android.net.Uri;import android.os.Bundle;import android.os.RemoteException;import android.os.Handler;import android.os.IBinder;import android.os.Looper;import android.os.Message;import android.os.SystemClock;import android.util.Log;import android.view.ContextMenu;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.SubMenu;import android.view.View;import android.view.Window;import android.view.ContextMenu.ContextMenuInfo;import android.widget.ImageButton;import android.widget.ProgressBar;import android.widget.SeekBar;import android.widget.TextView;import android.widget.Toast;import android.widget.SeekBar.OnSeekBarChangeListener;public class MediaPlaybackActivity extends Activity implements MusicUtils.Defs, View.OnTouchListener{    private static final int USE_AS_RINGTONE = CHILD_MENU_BASE;        private boolean mOneShot = false;    private boolean mSeeking = false;    private boolean mTrackball;    private long mStartSeekPos = 0;    private long mLastSeekEventTime;    private IMediaPlaybackService mService = null;    private RepeatingImageButton mPrevButton;    private ImageButton mPauseButton;    private RepeatingImageButton mNextButton;    private ImageButton mRepeatButton;    private ImageButton mShuffleButton;    private ImageButton mQueueButton;    private Worker mAlbumArtWorker;    private AlbumArtHandler mAlbumArtHandler;    private Toast mToast;    private boolean mRelaunchAfterConfigChange;    public MediaPlaybackActivity()    {    }    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle icicle)    {        super.onCreate(icicle);        setVolumeControlStream(AudioManager.STREAM_MUSIC);        mAlbumArtWorker = new Worker("album art worker");        mAlbumArtHandler = new AlbumArtHandler(mAlbumArtWorker.getLooper());        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.audio_player);        mCurrentTime = (TextView) findViewById(R.id.currenttime);        mTotalTime = (TextView) findViewById(R.id.totaltime);        mProgress = (ProgressBar) findViewById(android.R.id.progress);        mAlbum = (AlbumView) findViewById(R.id.album);        mArtistName = (TextView) findViewById(R.id.artistname);        mAlbumName = (TextView) findViewById(R.id.albumname);        mTrackName = (TextView) findViewById(R.id.trackname);        View v = (View)mArtistName.getParent();         v.setOnTouchListener(this);        registerForContextMenu(v);        v = (View)mAlbumName.getParent();        v.setOnTouchListener(this);        registerForContextMenu(v);        v = (View)mTrackName.getParent();        v.setOnTouchListener(this);        registerForContextMenu(v);                mPrevButton = (RepeatingImageButton) findViewById(R.id.prev);        mPrevButton.setOnClickListener(mPrevListener);        mPrevButton.setRepeatListener(mRewListener, 260);        mPauseButton = (ImageButton) findViewById(R.id.pause);        mPauseButton.requestFocus();        mPauseButton.setOnClickListener(mPauseListener);        mNextButton = (RepeatingImageButton) findViewById(R.id.next);        mNextButton.setOnClickListener(mNextListener);        mNextButton.setRepeatListener(mFfwdListener, 260);        seekmethod = 1;        mTrackball = true; /* (See bug 1044348) (getResources().getConfiguration().navigation ==             Resources.Configuration.NAVIGATION_TRACKBALL);*/                mQueueButton = (ImageButton) findViewById(R.id.curplaylist);        mQueueButton.setOnClickListener(mQueueListener);        mShuffleButton = ((ImageButton) findViewById(R.id.shuffle));        mShuffleButton.setOnClickListener(mShuffleListener);        mRepeatButton = ((ImageButton) findViewById(R.id.repeat));        mRepeatButton.setOnClickListener(mRepeatListener);                if (mProgress instanceof SeekBar) {            SeekBar seeker = (SeekBar) mProgress;            seeker.setOnSeekBarChangeListener(mSeekListener);        }        mProgress.setMax(1000);                if (icicle != null) {            mRelaunchAfterConfigChange = icicle.getBoolean("configchange");            mOneShot = icicle.getBoolean("oneshot");        } else {            mOneShot = getIntent().getBooleanExtra("oneshot", false);        }    }        public boolean onTouch(View v, MotionEvent event) {        int action = event.getAction();        if (action == MotionEvent.ACTION_DOWN) {            v.setBackgroundColor(0xff606060);        } else if (action == MotionEvent.ACTION_UP ||                action == MotionEvent.ACTION_CANCEL) {            v.setBackgroundColor(0);        }        return false;     }    @Override    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfoIn) {        /*         * A better way to do this would be to define a new "media search" intent (which         * would behave similar to a regular search intent), and have amazon, youtube, the         * browser and other suitable apps support it. Then we could just fire off the         * intent and let the user choose from the activity picker.         */        CharSequence title = null;        String query = null;        CharSequence artist = mArtistName.getText();        CharSequence album = mAlbumName.getText();        CharSequence song = mTrackName.getText();        if (view.equals(mArtistName.getParent()) && artist.length() > 0) {            title = artist;            query = artist.toString();        } else if (view.equals(mAlbumName.getParent()) &&                artist.length() > 0 && album.length() > 0) {            title = album ;            query = artist.toString() + " " + album.toString();        } else if (view.equals(mTrackName.getParent()) &&                artist.length() > 0 && song.length() > 0) {            title = song;            query = artist.toString() + " " + song.toString();        } else {            return;        }                title = getString(R.string.mediasearch, title);        TextView tv = new TextView(this);        tv.setText(title);        tv.setTextSize(18);        tv.setPadding(8, 8, 8, 8);        menu.setHeaderView(tv);        //menu.setHeaderTitle(title);                Intent i = new Intent();        i.setAction(Intent.ACTION_SEARCH);        i.setClassName("com.amazon.mp3", "com.amazon.mp3.android.client.SearchActivity");        i.putExtra("query", query);        PackageManager pm = getPackageManager();        ActivityInfo ai = i.resolveActivityInfo(pm, 0);        if ( ai != null) {            menu.add(R.string.mediasearch_amazon).setIntent(i);        }                i = new Intent();        i.setAction(Intent.ACTION_WEB_SEARCH);        i.putExtra("query", query);        menu.add(R.string.mediasearch_google).setIntent(i);        i = new Intent();        i.setAction(Intent.ACTION_SEARCH);        i.setClassName("com.google.android.youtube", "com.google.android.youtube.QueryActivity");        i.putExtra("query", query);        menu.add(R.string.mediasearch_youtube).setIntent(i);        return;    }    private OnSeekBarChangeListener mSeekListener = new OnSeekBarChangeListener() {        public void onStartTrackingTouch(SeekBar bar) {            mLastSeekEventTime = 0;        }        public void onProgressChanged(SeekBar bar, int progress, boolean fromtouch) {            if (mService == null) return;            if (fromtouch) {                long now = SystemClock.elapsedRealtime();                if ((now - mLastSeekEventTime) > 250) {                    mLastSeekEventTime = now;                    mPosOverride = mDuration * progress / 1000;                    try {                        mService.seek(mPosOverride);                    } catch (RemoteException ex) {                    }                }            }        }        public void onStopTrackingTouch(SeekBar bar) {            mPosOverride = -1;        }    };        private View.OnClickListener mQueueListener = new View.OnClickListener() {        public void onClick(View v) {            startActivity(                    new Intent(Intent.ACTION_EDIT)                    .setDataAndType(Uri.EMPTY, "vnd.android.cursor.dir/Track")                    .putExtra("playlist", "nowplaying")            );        }    };        private View.OnClickListener mShuffleListener = new View.OnClickListener() {        public void onClick(View v) {            toggleShuffle();        }    };    private View.OnClickListener mRepeatListener = new View.OnClickListener() {        public void onClick(View v) {            cycleRepeat();        }    };    private View.OnClickListener mPauseListener = new View.OnClickListener() {        public void onClick(View v) {            doPauseResume();        }    };    private View.OnClickListener mPrevListener = new View.OnClickListener() {        public void onClick(View v) {            if (mService == null) return;            try {                if (mService.position() < 2000) {                    mService.prev();                } else {                    mService.seek(0);                    mService.play();                }            } catch (RemoteException ex) {            }        }    };    private View.OnClickListener mNextListener = new View.OnClickListener() {        public void onClick(View v) {            if (mService == null) return;            try {                mService.next();            } catch (RemoteException ex) {            }        }    };    private RepeatingImageButton.RepeatListener mRewListener =        new RepeatingImageButton.RepeatListener() {        public void onRepeat(View v, long howlong, int repcnt) {            scanBackward(repcnt, howlong);        }    };        private RepeatingImageButton.RepeatListener mFfwdListener =        new RepeatingImageButton.RepeatListener() {        public void onRepeat(View v, long howlong, int repcnt) {            scanForward(repcnt, howlong);        }    };       @Override    public void onStop() {        paused = true;        if (mService != null && mOneShot && getChangingConfigurations() == 0) {            try {                mService.stop();            } catch (RemoteException ex) {            }        }        mHandler.removeMessages(REFRESH);        unregisterReceiver(mStatusListener);        MusicUtils.unbindFromService(this);        super.onStop();    }    @Override    public void onSaveInstanceState(Bundle outState) {        outState.putBoolean("configchange", getChangingConfigurations() != 0);        outState.putBoolean("oneshot", mOneShot);        super.onSaveInstanceState(outState);    }        @Override    public void onStart() {        super.onStart();        paused = false;        if (false == MusicUtils.bindToService(this, osc)) {            // something went wrong            mHandler.sendEmptyMessage(QUIT);        }                IntentFilter f = new IntentFilter();        f.addAction(MediaPlaybackService.PLAYSTATE_CHANGED);        f.addAction(MediaPlaybackService.META_CHANGED);        f.addAction(MediaPlaybackService.PLAYBACK_COMPLETE);        registerReceiver(mStatusListener, new IntentFilter(f));        updateTrackInfo();        long next = refreshNow();        queueNextRefresh(next);    }        @Override    public void onNewIntent(Intent intent) {        setIntent(intent);        mOneShot = intent.getBooleanExtra("oneshot", false);    }        @Override    public void onResume() {        super.onResume();        updateTrackInfo();        setPauseButtonImage();    }        @Override    public void onDestroy()    {        mAlbumArtWorker.quit();        super.onDestroy();        //System.out.println("***************** playback activity onDestroy\n");    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        super.onCreateOptionsMenu(menu);        // Don't show the menu items if we got launched by path/filedescriptor, since        // those tend to not be in the media database.        if (MusicUtils.getCurrentAudioId() >= 0) {            if (!mOneShot) {                menu.add(0, GOTO_START, 0, R.string.goto_start).setIcon(R.drawable.ic_menu_music_library);                menu.add(0, PARTY_SHUFFLE, 0, R.string.party_shuffle); // icon will be set in onPrepareOptionsMenu()            }            SubMenu sub = menu.addSubMenu(0, ADD_TO_PLAYLIST, 0,                    R.string.add_to_playlist).setIcon(R.drawable.ic_menu_add);            MusicUtils.makePlaylistMenu(this, sub);            menu.add(0, USE_AS_RINGTONE, 0, R.string.ringtone_menu_short).setIcon(R.drawable.ic_menu_set_as_ringtone);            menu.add(0, DELETE_ITEM, 0, R.string.delete_item).setIcon(R.drawable.ic_menu_delete);        }        return true;    }    @Override    public boolean onPrepareOptionsMenu(Menu menu) {        MenuItem item = menu.findItem(PARTY_SHUFFLE);        if (item != null) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲一区二区三区免费| 精品综合免费视频观看| 国产99久久精品| 99久久久久久| 中文字幕亚洲综合久久菠萝蜜| 久久精品国产精品亚洲综合| 欧美一级日韩免费不卡| 亚洲国产日韩在线一区模特| 色综合一个色综合亚洲| 国产精品黄色在线观看| 99热这里都是精品| 洋洋成人永久网站入口| 日本精品免费观看高清观看| 亚洲激情欧美激情| 欧美一三区三区四区免费在线看| 99精品桃花视频在线观看| 精品一区二区久久| 欧美aⅴ一区二区三区视频| 精品久久久久久最新网址| 国内一区二区在线| 国产精品福利一区| 久久精品人人做人人爽97| 成人免费看的视频| 一片黄亚洲嫩模| 国产精品色噜噜| 欧洲一区二区三区在线| 五月天网站亚洲| 久久久久久夜精品精品免费| 不卡av在线免费观看| 亚洲一区二区三区在线| 精品国产第一区二区三区观看体验 | 日本韩国一区二区| 国产91丝袜在线18| 国产成人自拍高清视频在线免费播放| 国产亚洲欧美色| 精品久久久久久久久久久久包黑料 | 免费黄网站欧美| 免费一区二区视频| 手机精品视频在线观看| 亚洲成年人网站在线观看| 久久一二三国产| 99久久婷婷国产| www.在线欧美| 91女人视频在线观看| 蜜臀久久99精品久久久久宅男| 国产日韩欧美一区二区三区乱码| 欧美日韩激情在线| 国产成人日日夜夜| 成人午夜精品在线| 91小视频在线| 欧美日韩情趣电影| 国产99精品视频| av福利精品导航| 91久久精品日日躁夜夜躁欧美| 色www精品视频在线观看| 欧美伊人久久大香线蕉综合69 | 亚洲国产日韩综合久久精品| 亚洲电影你懂得| 免费在线观看视频一区| 狠狠色狠狠色综合| 成人免费视频播放| 91猫先生在线| 欧美猛男超大videosgay| 国产精品资源网站| 日本成人在线视频网站| 亚洲人成7777| 久久精品亚洲国产奇米99| 国产精品电影一区二区| 亚洲国产三级在线| 韩国三级中文字幕hd久久精品| 高清不卡一区二区| 91久久人澡人人添人人爽欧美| 欧美日韩激情一区二区三区| 精品少妇一区二区| 亚洲免费观看视频| 久久99精品久久久久久 | 在线综合视频播放| a在线欧美一区| 91精品国产综合久久蜜臀| 国产午夜精品美女毛片视频| 亚洲精品国产品国语在线app| 日韩精品一卡二卡三卡四卡无卡| 国产麻豆一精品一av一免费| 午夜精品久久久久久不卡8050| 久久精品国产77777蜜臀| 91色视频在线| 欧美mv日韩mv国产网站app| 亚洲欧美一区二区三区极速播放| 日韩综合小视频| 成人av动漫网站| 欧美一区二区视频在线观看2020| 日本一区二区三级电影在线观看| 亚洲黄色免费网站| 国产美女精品在线| 欧美日韩激情一区| 中文字幕第一页久久| 日本一区二区三级电影在线观看| 亚洲国产成人91porn| 国产精品影视天天线| 91精品国产麻豆| 亚洲精品国产品国语在线app| 国产毛片精品国产一区二区三区| 欧美久久一二三四区| 国产精品久久影院| 黄色精品一二区| 欧美日韩国产天堂| 蜜芽一区二区三区| 色综合久久中文字幕| 日本韩国欧美在线| 国产精品嫩草久久久久| 激情丁香综合五月| 欧美日本不卡视频| 亚洲欧美另类综合偷拍| 国产精品1区2区3区在线观看| 欧美电影在线免费观看| 亚洲精品免费视频| 99久久精品情趣| 国产欧美日韩另类视频免费观看| 九九精品一区二区| 欧美成人精品1314www| 日韩av二区在线播放| 欧美日本免费一区二区三区| 一区二区三区中文在线观看| 95精品视频在线| 国产精品不卡在线| 91一区二区在线观看| 国产精品丝袜在线| 成人午夜精品一区二区三区| 中文字幕免费不卡在线| 成人网页在线观看| 欧美激情一区二区三区全黄| 国产成人在线影院| 国产精品灌醉下药二区| 91亚洲男人天堂| 专区另类欧美日韩| 麻豆精品新av中文字幕| 日韩视频免费观看高清完整版| 国产精品女同一区二区三区| 国产成人免费视频网站| 国产精品进线69影院| 成人高清免费在线播放| 中文字幕在线播放不卡一区| 99re这里只有精品视频首页| 国产精品久久久99| 91国偷自产一区二区开放时间 | 国产宾馆实践打屁股91| 国产精品情趣视频| 99精品桃花视频在线观看| 亚洲女人小视频在线观看| 欧美视频日韩视频在线观看| 日韩高清一区在线| 精品日本一线二线三线不卡| 国产精品88888| 亚洲视频免费在线观看| 欧美丝袜丝nylons| 久久精品国产免费| 中文字幕国产精品一区二区| 日本精品一区二区三区高清| 偷拍一区二区三区| 久久亚洲影视婷婷| 成人中文字幕电影| 亚洲午夜免费视频| 日韩精品自拍偷拍| 婷婷久久综合九色综合绿巨人 | 亚洲乱码国产乱码精品精可以看| 精品视频在线免费| 国产一区二区三区免费播放| 日韩毛片精品高清免费| 欧美日韩国产在线播放网站| 久久草av在线| 亚洲区小说区图片区qvod| 欧洲一区二区av| 久草精品在线观看| 亚洲区小说区图片区qvod| 欧美一级高清片| 成人亚洲一区二区一| 午夜欧美大尺度福利影院在线看 | 精品对白一区国产伦| 93久久精品日日躁夜夜躁欧美| 天堂一区二区在线免费观看| 中文字幕的久久| 在线不卡中文字幕播放| 成人性生交大片免费看中文| 一区二区三区欧美日韩| 久久久亚洲精品石原莉奈| 91视频你懂的| 久久精品国产99久久6| 亚洲欧美区自拍先锋| 精品国产污网站| 欧美无乱码久久久免费午夜一区| 国产福利精品导航| 视频一区二区不卡| 亚洲人成精品久久久久| 久久精品免视看| 欧美人与z0zoxxxx视频| 色呦呦国产精品| 国产盗摄女厕一区二区三区| 日韩av午夜在线观看| 一区二区不卡在线播放| 国产日本欧美一区二区|