Audio Manager یا مدیریت صدا در برنامه نویسی اندروید

شما به راحتی می توانید میزان صدای زنگ و نمایه زنگ (بی صدا، لرزش، بلند و غیره) را در اندروید کنترل کنید. اندروید کلاس Audio Manager را ایجاد کرده است که دسترسی به این کنترل ها را به راجتی فراهم کند. برای استفاده از کلاس AudioManager، ابتدا باید با فراخوانی متد ()getSystemService یک شی از کلاس Audio Manager ایجاد کنید. به شکل زیر :

private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

 

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

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

 

 

متد setRingerMode یک عدد صحیح را به عنوان پارامتر دریافت میکند. برای هر حالت، یک عدد صحیح تخصیص داده می شود که بین حالت های مختلف تفاوت قائل می شود. حالت های ممکن را در پایین لیست کردیم:

متد و توضیحات ردیف
RINGER_MODE_VIBRATE

این حالت دستگاه را در حالت لرزش قرار می دهد.

1
RINGER_MODE_NORMAL

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

2
RINGER_MODE_SILENT

این حالت دستگاه را در حالت بی صدا قرار می دهد.

3

 

هنگامی که حالت را تنظیم کردید، می توانید متد getRingerMode() را فراخوانی کنید تا وضعیت تنظیم شده سیستم را بدست آورید. به این شکل :

int mod = myAudioManager.getRingerMode();

 

به غیر از متد getRingerMode، متدهای دیگری نیز در کلاس AudioManager برای کنترل صدا و سایر حالت‌ها وجود دارد. این متد ها در پایین لیست شده اند :

متد و توضیحات ردیف
adjustVolume(int direction, int flags)

این متد حجم مرتبط ترین جریان را تنظیم می کند.

1
getMode()

این متد حالت صوتی فعلی را برمی گرداند.

2
getStreamMaxVolume(int streamType)

این متد حداکثر شاخص حجم را برای یک جریان خاص برمی گرداند.

3
getStreamVolume(int streamType)

این متد شاخص حجم فعلی را برای یک جریان خاص برمی گرداند.

4
isMusicActive()

این متد بررسی می کند که آیا موسیقی فعال است یا خیر.

5
startBluetoothSco()

این متد اتصال صوتی SCO بلوتوث را شروع میکند.

6
stopBluetoothSco()

این متد اتصال صوتی SCO بلوتوث را متوقف میکند.

7

 

مثال استفاده از Audio Manager

مثال زیر استفاده از کلاس AudioManager را نشان می دهد. برنامه ای ایجاد می کند که به شما امکان می دهد حالت های زنگ مختلف را برای دستگاه خود تنظیم کنید. برای آزمایش با این مثال، باید آن را روی یک دستگاه واقعی اجرا کنید.

توضیحات مراحل
در اندروید استودیو یک پروژه با پیکج دلخواه ایجاد کنید. 1
کد های فایل MainActivity.java مطابق با کد های  که در پایین آورده ایم تغییر بدهید. 2
کد های فایل activity_main.xml مطابق با کد های  که در پایین آورده ایم تغییر بدهید. 3
یک تلفن به اندروید استودیو متصل کنید تا بتوانید برنامه را روی آن نصب و اجرا کنید. 4

 

کد های فایل MainActivity.java

package com.foray.articlelib;

import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;


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

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

        vibrate=(Button)findViewById(R.id.button3);
        ring=(Button)findViewById(R.id.button2);

        mode=(Button)findViewById(R.id.button);
        silent=(Button)findViewById(R.id.button4);
        myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

        vibrate.setOnClickListener(v -> {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
            Toast.makeText(MainActivity.this,"حالت ویبره فعال شد",
                    Toast.LENGTH_LONG).show();
        });

        ring.setOnClickListener(v -> {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            Toast.makeText(MainActivity.this,"حالت زنگ فعال شد",
                    Toast.LENGTH_LONG).show();
        });

        silent.setOnClickListener(v -> {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            Toast.makeText(MainActivity.this,"حالت بی صدا فعال شد",
                    Toast.LENGTH_LONG).show();
        });

        mode.setOnClickListener(v -> {
            int mod=myAudioManager.getRingerMode();
            if(mod==AudioManager.RINGER_MODE_VIBRATE){
                Toast.makeText(MainActivity.this,"حالت ویبره",
                        Toast.LENGTH_LONG).show();
            } else if(mod==AudioManager.RINGER_MODE_NORMAL){
                Toast.makeText(MainActivity.this,"حالت زنگ",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(MainActivity.this,"حالت بی صدا",
                        Toast.LENGTH_LONG).show();
            }
        });
    }
}

 

 

کد های فایل 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:padding="32dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:gravity="center"
        android:text="مدیریت صدا در اندروید"
        android:textSize="30dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:text="7cloner.com"
        android:textColor="@color/black"
        android:textSize="35dp" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_alignStart="@+id/textView2"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignEnd="@+id/textView2"
        android:layout_alignRight="@+id/textView2"
        android:src="@drawable/abc" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imageView"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="59dp"
        android:text="نمایش حالت" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button"
        android:layout_centerHorizontal="true"
        android:text="زنگ" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button2"
        android:layout_alignEnd="@+id/textView"
        android:layout_alignRight="@+id/textView"
        android:text="ویبره" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2"
        android:layout_alignStart="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:text="بی صدا" />
</RelativeLayout>

 

 

َمدیریت صدا یا Audio Manager در اندروید َمدیریت صدا یا Audio Manager در اندروید َمدیریت صدا یا Audio Manager در اندروید

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

هک و امنیت

در تعریف کلی این واژه می توان گفت که به پیدا کردن راه های نفوذ به یک حریم شخصی و استفاده غیر مجاز از آن را هک می نامیم. هدف از هک می تواند ...


۹۵۹
۰
۱۳ آذر ۱۳۹۹

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۸۶۸
۰
۱۳ آذر ۱۳۹۹

پی اچ پی - PHP

با استفاده از این زبان می توان وب سایت های پویا طراحی کرد, این زبان می تواند با HTML ادغام شود, در حقیقت یک زبان اسکریپتی متن باز و رایگان است. یعنی زمانی که سرور درخواست ...


۹۴۶
۰
۱۳ آذر ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۹۱۲
۰
۱۲ آذر ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52