97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見(jiàn)教育科技集團(tuán) >> 新聞動(dòng)態(tài) >> Android資料 >> Android RingtoneManager 鈴聲管理  
 
Android RingtoneManager 鈴聲管理
分享到:

對(duì)于android系統(tǒng)中鈴聲的播放,Ringtone提供了播放鈴聲、提示音的快速方法,通常和RingtoneManager配合使用。RingtoneManager在系統(tǒng)中維護(hù)著一個(gè)鈴聲數(shù)據(jù)庫(kù)。

RingtoneManager管理來(lái)電鈴聲(TYPE_RINGTONE)、提示音(TYPE_NOTIFICATION)、鬧鐘鈴聲(TYPE_ALARM)等,在本質(zhì)上,Ringtone是對(duì)MediaPlayer的再封裝。

Ringtone的常用方法包括:
    getTitle()     //獲取鈴聲名
    isPlaying()    //判斷是否正在播放
    play()    //開(kāi)始播放
    stop()    //停止播放

RingtoneManager的常用方法包括:
    getRingtone()    //獲取鈴聲
    setActualDefaultRingtoneUri()    //為某一鈴聲類型設(shè)置默認(rèn)鈴聲
    getDefaultUri()    //獲取某一鈴聲類型的默認(rèn)鈴聲

下面是利用RingtoneManager和Ringtone來(lái)播放鈴聲的實(shí)現(xiàn)過(guò)程。

代碼:Ringtone對(duì)鈴聲的播放

import android.media.AudioManager;
    import android.media.Ringtone;
    import android.media.RingtoneManager;
    ……
    private RingtonePickerActivity mActivity;
    private RingtoneManager mRingtoneManager;
    private AudioManager mAudioManager;
    ……
    mActivity=getActivity();
    mRingtoneManager=new RingtoneManager(mActivity); //創(chuàng)建鈴聲管理器
    mAudioManager=(AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); //備份鈴聲設(shè)置
    mOriginalVolume=mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
    mDefaultUri=RingtoneManager.getActualDefaultRingtoneUri(mContext,
    RingtoneManager.TYPE_RINGTONE); //獲取默認(rèn)鈴聲
    int maxVolume=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
    mAudioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume/2,
    AudioManager.FLAG_ALLOW_RINGER_MODES);
    mRingtoneManager.setType(RingtoneManager.TYPE_ALARM); //設(shè)置鈴聲類型
    Ringtone r=mRingtoneManager.getRingtone(0); //獲得鈴聲句柄
    ringtone.play(); //播放鈴聲

在Ringtone中,對(duì)DRM提供了默認(rèn)的支持, 利用setStreamType()方法可以設(shè)置流類型,利用isPlaying()方法可以判斷流的播放狀態(tài)。

如果希望獲得鈴聲列表,可以通過(guò)Action為ACTION_RINGTONE_PICKER的Intent進(jìn)行,
實(shí)現(xiàn)過(guò)程如下:

代碼:獲取鈴聲列表

private void doPickRingtone()
    {
    Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
    //允許設(shè)置默認(rèn)鈴聲
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
    / 僅顯示TYPE_RINGTONE類型
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
    // 不顯示靜音
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
    Uri ringtoneUri;
    if (mCustomRingtone != null) {
    ringtoneUri = Uri.parse(mCustomRingtone);
    } else {
    ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
    }
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
    startActivityForResult(intent, RINGTONE_PICKED);
    }

 
 更多相關(guān)文章

·Android AudioTrack音頻播放分析
·Android音頻記錄的處理
·Android AudioManager音量控制流程
·Android音頻處理的基本接口
·Android編譯過(guò)程詳解(三)