مدیریت صدا با AudioManager در اندروید

منتشرشده توسط حامد قنبری در تاریخ

شما می توانید به راحتی میزان صدا و مشخصات مربوط به صدا از جمله سکوت، ویبره ، بلندی صدای و … را در سیستم اندروید کنترل کنید . کلاس AudioManager دسترسی به این کنترل ها را فراهم می کند.برای استفاده از کلاس AndroidManager، ابتدا باید با استفاده از متد() getSystemService یک شی از کلاس AudioManager ایجاد کنید که سینتکس آن در ذیل امده است.

AudioManager myaudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

توجه داشته باشید زمانی که آبجکتی از کلاس AudioManager را به صورت اولیه می نویسید، می توانید از متد setRingerMode برای تنظیم پروفایل صدا یا رینگر دستگاه اندرویدی خود استفاده کنید:

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

متد setRingerMode

روش setRingerMode یک عدد صحیح را به عنوان یک پارامتر می گیرد و برای هر یک عدد صحیح  از بین حالت های ممکن حالت های مختلف متفاوتی اختصاص داده می شود مدل های ممکن عبارتند از:

RINGER_MODE_VIBRATE

این حالت دستگاه را در حالت ویبره تنظیم می کند

RINGER_MODE_NORMAL

این حالت دستگاه را در حالت نرمال (با صدای بلند) تنظیم می کند

RINGER_MODE_SILENT

این حالت دستگاه را در حالت خاموش تنظیم می کند.

به منظور درک بیشتر موضوع بهتر است مثالی در این خصوص ارائه کنیم . امید است که این مثال در امر یادگیری شما موثر بوده باشد.

اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید. بعد از لود کامل برنامه ، در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">


    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Mode"
        android:id="@+id/button"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="62dp" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Ring"
        android:id="@+id/button2"
        android:layout_alignLeft="@+id/button"
        android:layout_alignStart="@+id/button"
        android:layout_marginTop="15dp" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="vibrate"
        android:id="@+id/button3"
        android:layout_below="@+id/button"
        android:layout_alignLeft="@+id/button"
        android:layout_alignStart="@+id/button" />



    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Silent"
        android:id="@+id/btnsilent"
        android:layout_below="@+id/button3"
        android:layout_alignLeft="@+id/button3"
        android:layout_alignStart="@+id/button3" />

</RelativeLayout>

 

سپس کلاس MainActivity  را باز کرده و کدهای زیر را در آن قرار می دهیم.

 

package ir.psrd.example.AudioManager;

/**
 * Created by h.ghanbari on 28/12/2017.
 */

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.View;

import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends Activity {
    Button mode,ring,vibrate,silent;
    private AudioManager myAudioManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activite_main2);

        vibrate=(Button)findViewById(R.id.button3);
        ring=(Button)findViewById(R.id.button2);
        mode=(Button)findViewById(R.id.button);
        silent=(Button)findViewById(R.id.btnsilent);
        // فراخوانی آبجکت کلای AudioManager
        myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

        vibrate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                Toast.makeText(getApplicationContext(),"حالت ویبره فعال شد",
                        Toast.LENGTH_LONG).show();
            }
        });

        ring.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
                Toast.makeText(getApplicationContext(),"حالت صدا فعال شد",
                        Toast.LENGTH_LONG).show();
            }
        });

        silent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                Toast.makeText(getApplicationContext(),"حالت سکوت فعال شد",
                        Toast.LENGTH_LONG).show();
            }
        });
        mode.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int mod=myAudioManager.getRingerMode();
                if(mod==AudioManager.RINGER_MODE_VIBRATE){
                    Toast.makeText(getApplicationContext(),"Now in Vibrate Mode",
                            Toast.LENGTH_LONG).show();
                } else if(mod==AudioManager.RINGER_MODE_NORMAL){
                    Toast.makeText(getApplicationContext(),"Now in Ringing Mode",
                            Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(getApplicationContext(),"Now in Vibrate Mode",
                            Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

حال می توانید پروژه خود را اجرا کرده و نتیجه کار خود را ببینید.


0 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --