Java 类android.media.AudioSystem 实例源码

项目:FMRadio    文件:FmService.java   
private synchronized void startRender() {
    Log.d(TAG, "startRender " + AudioSystem.getForceUse(FOR_PROPRIETARY));

   // need to create new audio record and audio play back track,
   // because input/output device may be changed.
   if (mAudioRecord != null) {
       mAudioRecord.stop();
       mAudioRecord.release();
       mAudioRecord = null;
   }
   if (mAudioTrack != null) {
       mAudioTrack.stop();
       mAudioTrack.release();
       mAudioTrack = null;
   }
   initAudioRecordSink();

    mIsRender = true;
    synchronized (mRenderLock) {
        mRenderLock.notify();
    }
}
项目:FMRadio    文件:FmService.java   
private boolean isPatchMixerToEarphone(ArrayList<AudioPatch> patches) {
        int deviceCount = 0;
        int deviceEarphoneCount = 0;
        for (AudioPatch patch : patches) {
            AudioPortConfig[] sources = patch.sources();
            AudioPortConfig[] sinks = patch.sinks();
            AudioPortConfig sourceConfig = sources[0];
            AudioPortConfig sinkConfig = sinks[0];
            AudioPort sourcePort = sourceConfig.port();
            AudioPort sinkPort = sinkConfig.port();
            Log.d(TAG, "isPatchMixerToEarphone " + sourcePort + " ====> " + sinkPort);
            if (sourcePort instanceof AudioMixPort && sinkPort instanceof AudioDevicePort) {
                deviceCount++;
                int type = ((AudioDevicePort) sinkPort).type();
                if (type == AudioSystem.DEVICE_OUT_WIRED_HEADSET ||
                        type == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) {
//                    deviceEarphoneCount++;
                }
            }
        }
        if (deviceEarphoneCount == 1 && deviceCount == deviceEarphoneCount) {
            return true;
        }
        return false;
    }
项目:FMRadio    文件:FmService.java   
private synchronized int createAudioPatch() {
    Log.d(TAG, "createAudioPatch");
    int status = AudioManager.SUCCESS;
    if (mAudioPatch != null) {
        Log.d(TAG, "createAudioPatch, mAudioPatch is not null, return");
        return status;
    }

    mAudioSource = null;
    mAudioSink = null;
    ArrayList<AudioPort> ports = new ArrayList<AudioPort>();
    mAudioManager.listAudioPorts(ports);
    for (AudioPort port : ports) {
        if (port instanceof AudioDevicePort) {
            int type = ((AudioDevicePort) port).type();
            String name = AudioSystem.getOutputDeviceName(type);
            if (type == AudioSystem.DEVICE_IN_FM_TUNER) {
                mAudioSource = (AudioDevicePort) port;
            } else if (type == AudioSystem.DEVICE_OUT_WIRED_HEADSET ||
                    type == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) {
                mAudioSink = (AudioDevicePort) port;
            }
        }
    }
    if (mAudioSource != null && mAudioSink != null) {
        AudioDevicePortConfig sourceConfig = (AudioDevicePortConfig) mAudioSource
                .activeConfig();
        AudioDevicePortConfig sinkConfig = (AudioDevicePortConfig) mAudioSink.activeConfig();
        AudioPatch[] audioPatchArray = new AudioPatch[] {null};
        status = mAudioManager.createAudioPatch(audioPatchArray,
                new AudioPortConfig[] {sourceConfig},
                new AudioPortConfig[] {sinkConfig});
        mAudioPatch = audioPatchArray[0];
    }
    return status;
}
项目:FMRadio    文件:FmService.java   
private void forceToHeadsetMode() {
    if (mIsSpeakerUsed && isHeadSetIn()) {
        AudioSystem.setForceUse(FOR_PROPRIETARY, AudioSystem.FORCE_NONE);
        // save user's option to shared preferences.
        FmUtils.setIsSpeakerModeOnFocusLost(mContext, true);
    }
}
项目:android_device_MTS_x2605    文件:FmRadioService.java   
/**
 * Set FM audio from speaker or not
 *
 * @param isSpeaker true if set FM audio from speaker
 */
public void setSpeakerPhoneOn(boolean isSpeaker) {
    Log.d(TAG, ">>> FmRadioService.useSpeaker: " + isSpeaker);
    mForcedUseForMedia = isSpeaker ? AudioSystem.FORCE_SPEAKER : AudioSystem.FORCE_NONE;
    AudioSystem.setForceUse(FOR_PROPRIETARY, mForcedUseForMedia);
    mIsSpeakerUsed = isSpeaker;
    Log.d(TAG, "<<< FmRadioService.useSpeaker");
}
项目:FMRadio    文件:FmService.java   
private void setForceUse(boolean isSpeaker) {
    mForcedUseForMedia = isSpeaker ? AudioSystem.FORCE_SPEAKER : AudioSystem.FORCE_NONE;
    AudioSystem.setForceUse(FOR_PROPRIETARY, mForcedUseForMedia);
    mIsSpeakerUsed = isSpeaker;
}
项目:FMRadio    文件:FmService.java   
private boolean isSpeakerPhoneOn() {
    return (mForcedUseForMedia == AudioSystem.FORCE_SPEAKER);
}
项目:android_device_MTS_x2605    文件:TestFM.java   
private void setForceUseSpeaker(boolean isOn) {
    int forcedUseForMedia = isOn ? AudioSystem.FORCE_SPEAKER : AudioSystem.FORCE_NONE;
    AudioSystem.setForceUse(FOR_PROPRIETARY, forcedUseForMedia);
}
项目:android_device_MTS_x2605    文件:FmRadioService.java   
private boolean isSpeakerPhoneOn() {
    return (mForcedUseForMedia == AudioSystem.FORCE_SPEAKER);
}