Example usage for android.media AudioManager getStreamMaxVolume

List of usage examples for android.media AudioManager getStreamMaxVolume

Introduction

In this page you can find the example usage for android.media AudioManager getStreamMaxVolume.

Prototype

public int getStreamMaxVolume(int streamType) 

Source Link

Document

Returns the maximum volume index for a particular stream.

Usage

From source file:uk.ac.ucl.excites.sapelli.shared.util.android.DeviceControl.java

/**
 * Decreases the Media Volume only up to half of the device's max volume
 * //from  w  ww  .j a  va 2 s.co m
 * @param context
 */
public static void safeDecreaseMediaVolume(Context context) {
    // Get the volume
    final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    final int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
    final int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    final int minVolume = maxVolume / 2;

    Debug.d("currentVolume: " + currentVolume);
    Debug.d("maxVolume: " + maxVolume);
    Debug.d("minVolume: " + minVolume);

    if (currentVolume > minVolume)
        decreaseMediaVolume(context);
}

From source file:com.wifi.brainbreaker.mydemo.spydroid.api.RequestHandler.java

/** 
 * The implementation of all the possible requests is here
 * -> "sounds": returns a list of available sounds on the phone
 * -> "screen": returns the screen state (whether the app. is on the foreground or not)
 * -> "play": plays a sound on the phone
 * -> "set": update Spydroid's configuration
 * -> "get": returns Spydroid's configuration (framerate, bitrate...)
 * -> "state": returns a JSON containing information about the state of the application
 * -> "battery": returns an approximation of the battery level on the phone
 * -> "buzz": makes the phone buuz /*from   w  w w.  j a v a  2 s  .c o  m*/
 * -> "volume": sets or gets the volume 
 * @throws JSONException
 * @throws IllegalAccessException 
 * @throws IllegalArgumentException 
 **/
static private void exec(JSONObject object, StringBuilder response)
        throws JSONException, IllegalArgumentException, IllegalAccessException {

    SpydroidApplication application = SpydroidApplication.getInstance();
    Context context = application.getApplicationContext();

    String action = object.getString("action");

    // Returns a list of available sounds on the phone
    if (action.equals("sounds")) {
        Field[] raws = R.raw.class.getFields();
        response.append("[");
        for (int i = 0; i < raws.length - 1; i++) {
            response.append("\"" + raws[i].getName() + "\",");
        }
        response.append("\"" + raws[raws.length - 1].getName() + "\"]");
    }

    // Returns the screen state (whether the app. is on the foreground or not)
    else if (action.equals("screen")) {
        response.append(application.applicationForeground ? "\"1\"" : "\"0\"");
    }

    // Plays a sound on the phone
    else if (action.equals("play")) {
        Field[] raws = R.raw.class.getFields();
        for (int i = 0; i < raws.length; i++) {
            if (raws[i].getName().equals(object.getString("name"))) {
                mSoundPool.load(application, raws[i].getInt(null), 0);
            }
        }
        response.append("[]");
    }

    // Returns Spydroid's configuration (framerate, bitrate...)
    else if (action.equals("get")) {
        final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);

        response.append("{\"streamAudio\":" + settings.getBoolean("stream_audio", false) + ",");
        response.append("\"audioEncoder\":\""
                + (application.audioEncoder == SessionBuilder.AUDIO_AMRNB ? "AMR-NB" : "AAC") + "\",");
        response.append("\"streamVideo\":" + settings.getBoolean("stream_video", true) + ",");
        response.append("\"videoEncoder\":\""
                + (application.videoEncoder == SessionBuilder.VIDEO_H263 ? "H.263" : "H.264") + "\",");
        response.append("\"videoResolution\":\"" + application.videoQuality.resX + "x"
                + application.videoQuality.resY + "\",");
        response.append("\"videoFramerate\":\"" + application.videoQuality.framerate + " fps\",");
        response.append("\"videoBitrate\":\"" + application.videoQuality.bitrate / 1000 + " kbps\"}");

    }

    // Update Spydroid's configuration
    else if (action.equals("set")) {
        final JSONObject settings = object.getJSONObject("settings");
        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        final Editor editor = prefs.edit();

        editor.putBoolean("stream_video", settings.getBoolean("stream_video"));
        application.videoQuality = VideoQuality.parseQuality(settings.getString("video_quality"));
        editor.putInt("video_resX", application.videoQuality.resX);
        editor.putInt("video_resY", application.videoQuality.resY);
        editor.putString("video_framerate", String.valueOf(application.videoQuality.framerate));
        editor.putString("video_bitrate", String.valueOf(application.videoQuality.bitrate / 1000));
        editor.putString("video_encoder", settings.getString("video_encoder").equals("H.263") ? "2" : "1");
        editor.putBoolean("stream_audio", settings.getBoolean("stream_audio"));
        editor.putString("audio_encoder", settings.getString("audio_encoder").equals("AMR-NB") ? "3" : "5");
        editor.commit();
        response.append("[]");

    }

    // Returns a JSON containing information about the state of the application
    else if (action.equals("state")) {

        Exception exception = application.lastCaughtException;

        response.append("{");

        if (exception != null) {

            // Used to display the message on the user interface
            String lastError = exception.getMessage();

            // Useful to display additional information to the user depending on the error
            StackTraceElement[] stack = exception.getStackTrace();
            StringBuilder builder = new StringBuilder(
                    exception.getClass().getName() + " : " + lastError + "||");
            for (int i = 0; i < stack.length; i++)
                builder.append("at " + stack[i].getClassName() + "." + stack[i].getMethodName() + " ("
                        + stack[i].getFileName() + ":" + stack[i].getLineNumber() + ")||");

            response.append("\"lastError\":\"" + (lastError != null ? lastError : "unknown error") + "\",");
            response.append("\"lastStackTrace\":\"" + builder.toString() + "\",");

        }

        response.append("\"activityPaused\":\"" + (application.applicationForeground ? "1" : "0") + "\"");
        response.append("}");

    }

    else if (action.equals("clear")) {
        application.lastCaughtException = null;
        response.append("[]");
    }

    // Returns an approximation of the battery level
    else if (action.equals("battery")) {
        response.append("\"" + application.batteryLevel + "\"");
    }

    // Makes the phone vibrates for 300ms
    else if (action.equals("buzz")) {
        Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
        vibrator.vibrate(300);
        response.append("[]");
    }

    // Sets or gets the system's volume
    else if (action.equals("volume")) {
        AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        if (object.has("set")) {
            audio.setStreamVolume(AudioManager.STREAM_MUSIC, object.getInt("set"),
                    AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
            response.append("[]");
        } else {
            int max = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            int current = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
            response.append("{\"max\":" + max + ",\"current\":" + current + "}");
        }
    }

}

From source file:com.jungle.base.utils.MiscUtils.java

public static void playSound(Context context, int soundResId) {
    final MediaPlayer player = MediaPlayer.create(context, soundResId);
    if (player == null) {
        return;/*  www  .  j av  a  2 s  . co  m*/
    }

    AudioManager manager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    int currVolume = manager.getStreamVolume(AudioManager.STREAM_MUSIC);

    float volume = 1.0f;
    if (maxVolume > 0) {
        volume = (float) currVolume / (float) maxVolume;
    }

    player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            player.release();
        }
    });

    player.setVolume(volume, volume);
    player.start();
}

From source file:com.pixate.freestyle.fragment.ButtonsFragment.java

/** Set the volumn controling to seek bar */
private void setSeekBar(SeekBar seek) {
    AudioManager audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
    seek.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_RING));
    seek.setProgress(m_nAlarmVolum);//from  w  ww .  j  a va2  s. c  o  m
    seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar arg0) {

        }

        @Override
        public void onStartTrackingTouch(SeekBar arg0) {
        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean arg2) {
            m_nAlarmVolum = progress;

            AudioManager audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
            audioManager.setStreamVolume(AudioManager.STREAM_RING, m_nAlarmVolum,
                    AudioManager.FLAG_ALLOW_RINGER_MODES | AudioManager.FLAG_PLAY_SOUND);
        }
    });
}

From source file:com.shinymayhem.radiopresets.FragmentPlayer.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (LOCAL_LOGV)
        log("onCreateView()", "v");
    //inflate view from layout
    View view = inflater.inflate(R.layout.player_fragment, container, false);

    AudioManager audio = (AudioManager) this.getActivity().getSystemService(Context.AUDIO_SERVICE);
    SeekBar volumeSlider = (SeekBar) view.findViewById(R.id.volume_slider);

    //slider max = volume stream max
    volumeSlider.setMax(audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC));

    //detect slider updates
    volumeSlider.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        //update volume as slider is moved
        @Override/*w  ww . ja v a2s .  com*/
        public void onProgressChanged(SeekBar slider, int progress, boolean fromUser) {
            if (LOCAL_LOGV)
                log("onProgressChanged(): " + String.valueOf(progress), "v");
            if (fromUser) //responding to touch slide event
            {
                mListener.setVolume(progress);
            } else //progress probably changed as a result of volume changing
            {

            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar slider) {
        }

        @Override
        public void onStopTrackingTouch(SeekBar slider) {
        }
    });

    return view;
}

From source file:u.ready_wisc.MenuActivity.java

@Override
public void onClick(View v) {
    //TODO fix action bar or disable completely
    if ((v.getId() == (R.id.prepareButton)) || (v.getId() == (R.id.prepareMenuButton))) {
        Intent i = new Intent(MenuActivity.this, Prep_Main.class);
        startActivity(i);/*from ww w  .  ja  v  a2 s  . com*/
    } else if (v.getId() == (R.id.reportDamageButton) || v.getId() == (R.id.emergencyMenuButton)) {
        Intent i = new Intent(MenuActivity.this, Emergency.class);
        MenuActivity.this.startActivity(i);
    } else if (v.getId() == (R.id.disasterResourcesButton) || v.getId() == (R.id.disasterMenuButton)) {
        Intent i = new Intent(MenuActivity.this, ResourcesActivity.class);
        MenuActivity.this.startActivity(i);
    } else if (v.getId() == (R.id.typeDisasterButton)) {
        Intent i = new Intent(MenuActivity.this, DisastersType.class);
        MenuActivity.this.startActivity(i);
    } else if (v.getId() == (R.id.SOSMenubutton)) {
        if (!sosTone) {

            //sets device volume to maximum
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);

            //begins looping tone
            mp.setLooping(true);
            sosTone = true;
            mp.start();
        }

    } else if (v.getId() == (R.id.FlashlightMenuButton)) {
        //check to see if device has a camera with flash
        if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {

            Log.e("err", "Device has no camera!");
            //Return from the method, do nothing after this code block
            return;
        }
        // if camera has flash toggle on and off
        else {
            // boolean to check status of camera flash
            if (!isFlashOn) {

                //if flash is off, toggle boolean to on and turn on flash
                isFlashOn = true;
                camera = Camera.open();
                Camera.Parameters parameters = camera.getParameters();
                parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                camera.setParameters(parameters);
                camera.startPreview();

            } else {

                //if flash is on turn boolean to false and turn off flash
                isFlashOn = false;
                camera.stopPreview();
                camera.release();
                camera = null;

            }
        }
    } else {

        //stops looping sound
        Log.d("Sound test", "Stopping sound");
        mp.setLooping(false);
        mp.pause();
        sosTone = false;
    }
}

From source file:com.bdcorps.videonews.MainActivity.java

public void speak(String s) {
    Log.d("SSS", "to speak: " + s);
    if (s != null) {
        HashMap<String, String> myHashAlarm = new HashMap<String, String>();
        myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
        myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "completed");
        AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        int amStreamMusicMaxVol = am.getStreamMaxVolume(am.STREAM_SYSTEM);
        am.setStreamVolume(am.STREAM_SYSTEM, amStreamMusicMaxVol, 0);
        mTts.speak(s, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
    } else {//from   w w w  .j  a  v  a 2  s  .  c o  m
        speakNext();
    }
}

From source file:org.protocoderrunner.base.BaseActivity.java

public void setVolume(int value) {
    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    int maxValue = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    float val = (float) (value / 100.0 * maxValue);

    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, Math.round(val),
            AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
}

From source file:com.xortech.sender.SmsReceiver.java

public void onReceive(final Context ctx, Intent intent) {
    // GET SMS MAP FROM INTENT
    Bundle extras = intent.getExtras();//www.  j  a v a  2  s. c o m
    context = ctx;

    // GPS INSTANCE
    gps = new GPSTracker(context);

    // LOAD PREFERENCES
    preferences = PreferenceManager.getDefaultSharedPreferences(context);
    secretCode = preferences.getString("secretCode", DEFAULT_CODE);
    tagID = preferences.getString("tagID", DEFAULT_TAGID);
    senderEnabled = preferences.getBoolean("senderEnabled", true);

    if (extras != null) {

        // GET THE RECEIVED SMS ARRAY
        Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);

        for (int i = 0; i < smsExtra.length; ++i) {

            // GET THE MESSAGE
            SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);

            // PARSE THE MESSAGE BODY
            String body = sms.getMessageBody().toString();
            String address = sms.getOriginatingAddress();
            long time = System.currentTimeMillis();

            // GET COORDINATES AND SEND A MESSAGE
            gps.getLocation();

            latitude = String.valueOf(Math.round(FIVE_DIGIT * gps.getLatitude()) / FIVE_DIGIT);
            longitude = String.valueOf(Math.round(FIVE_DIGIT * gps.getLongitude()) / FIVE_DIGIT);
            location = "Tag_ID:" + tagID + ":Location:" + latitude + "," + longitude;
            googleString = GOOGLE_STRING + latitude + "," + longitude + "(" + tagID + ")";

            if (body.equals(SECRET_LOCATION_A + secretCode)) {
                if (senderEnabled) {
                    if (latitude.equals("0.0") | longitude.equals("0.0")) {
                        SmsManager.getDefault().sendTextMessage(address, null, NO_COORDS + tagID, null, null);
                    } else {
                        SmsManager.getDefault().sendTextMessage(address, null, googleString, null, null);
                    }
                }

                this.abortBroadcast();
            } else if (body.equals(SECRET_LOCATION_B + secretCode)) {
                if (senderEnabled) {
                    if (latitude.equals("0.0") | longitude.equals("0.0")) {
                        SmsManager.getDefault().sendTextMessage(address, null, NO_COORDS + tagID, null, null);
                    } else {
                        SmsManager.getDefault().sendTextMessage(address, null, location, null, null);
                    }
                }

                this.abortBroadcast();
            } else if (body.contains("Tag_ID:")) {
                // ADD TO DATABASE
                MsgDatabaseHandler dbHandler = new MsgDatabaseHandler(context);

                // VERIFY IF THE TAG EXISTS IN THE ARRAY
                String addressExists = VerifyTagExist(address);

                String[] splitBody = body.split(":");
                String tag = splitBody[1];
                tag.trim();
                String coords = splitBody[3];
                String[] splitCoords = coords.split(",");
                String lat = splitCoords[0];
                lat.trim();
                String lon = splitCoords[1];
                lon.trim();
                String _time = String.valueOf(time);
                String toastMsg = null;

                // CHECK IF THE ADDRESS EXISTS FOR NAMING PURPOSES
                if (addressExists == null) {
                    dbHandler.Add_Message(new MessageData(tag, address, lat, lon, _time));
                    toastMsg = "Response Received: " + tag;
                } else {
                    dbHandler.Add_Message(new MessageData(addressExists, address, lat, lon, _time));
                    toastMsg = "Response Received: " + addressExists;
                }

                dbHandler.close();

                Toast.makeText(context, toastMsg, Toast.LENGTH_LONG).show();

                this.abortBroadcast();
            } else if (body.contains("Panic!")) {

                // OVERRIDE THE SILENT FEATURE
                AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
                int max = audio.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
                audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
                audio.setStreamVolume(AudioManager.STREAM_RING, max,
                        AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

                // DEFINE THE NOTIFICATION MANAGER
                notificationManager = (NotificationManager) context
                        .getSystemService(Context.NOTIFICATION_SERVICE);

                // START A TIMER
                mytimer = new Timer(true);

                // SOUND LOCATION ALARM
                soundUri = Uri.parse(BEGIN_PATH + context.getPackageName() + FILE_PATH);

                // DISPLAY TAG ID FOR EMERGENCY
                String[] splitBody = body.split("\n");
                String fieldTag = splitBody[1];
                String[] splitTag = fieldTag.split(":");

                emergencyTag = splitTag[1].trim();

                // TIMER FOR NOTIFICATIONS
                mytask = new TimerTask() {
                    public void run() {
                        // RUN NOTIFICATION ON TIMER
                        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                                .setSmallIcon(R.drawable.emergency).setContentTitle(PANIC_TXT)
                                .setContentText(emergencyTag + UNDER_DURRESS).setSound(soundUri); //This sets the sound to play

                        // DISPLAY THE NOTIFICATION
                        notificationManager.notify(0, mBuilder.build());
                    }
                };
                // START TIMER AFTER 5 SECONDS
                mytimer.schedule(mytask, FIVE_SECONDS);
            }
        }
    }

    // CLEAR THE CACHE ON RECEIVING A MESSAGE
    try {
        MyUpdateReceiver.trimCache(context);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.chromium.latency.walt.AudioFragment.java

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button_start_audio:
        chartLayout.setVisibility(View.GONE);
        disableButtons();/*  www. jav a  2  s  .co  m*/
        AudioTestType testType = getSelectedTestType();
        switch (testType) {
        case CONTINUOUS_PLAYBACK:
        case CONTINUOUS_RECORDING:
        case DISPLAY_WAVEFORM:
            audioTest.setAudioMode(AudioTest.AudioMode.CONTINUOUS);
            audioTest.setPeriod(AudioTest.CONTINUOUS_TEST_PERIOD);
            break;
        case COLD_PLAYBACK:
        case COLD_RECORDING:
            audioTest.setAudioMode(AudioTest.AudioMode.CONTINUOUS);
            audioTest.setPeriod(AudioTest.COLD_TEST_PERIOD);
            break;
        }
        if (testType == AudioTestType.DISPLAY_WAVEFORM) {
            // Only need to record 1 beep to display wave
            audioTest.setRecordingRepetitions(1);
        } else {
            audioTest.setRecordingRepetitions(
                    getIntPreference(getContext(), R.string.preference_audio_in_reps, 5));
        }
        if (testType == AudioTestType.CONTINUOUS_PLAYBACK || testType == AudioTestType.COLD_PLAYBACK
                || testType == AudioTestType.CONTINUOUS_RECORDING || testType == AudioTestType.COLD_RECORDING) {
            latencyChart.setVisibility(View.VISIBLE);
            latencyChart.clearData();
            latencyChart.setLegendEnabled(false);
            final String description = getResources().getStringArray(R.array.audio_mode_array)[modeSpinner
                    .getSelectedItemPosition()] + " [ms]";
            latencyChart.setDescription(description);
        }
        switch (testType) {
        case CONTINUOUS_RECORDING:
        case COLD_RECORDING:
        case DISPLAY_WAVEFORM:
            attemptRecordingTest();
            break;
        case CONTINUOUS_PLAYBACK:
        case COLD_PLAYBACK:
            // Set media volume to max
            AudioManager am = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
            am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
            audioTest.beginPlaybackMeasurement();
            break;
        }
        break;
    case R.id.button_stop_audio:
        audioTest.stopTest();
        break;
    case R.id.button_close_chart:
        chartLayout.setVisibility(View.GONE);
        break;
    }
}