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

4 سال پیش

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

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد مدیریت صدا در برنامه نویسی اندروید (Audio Manager) صحبت خواهیم کرد.

 

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

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

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

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

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

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

  • RINGER_MODE_VIBRATE

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

  • RINGER_MODE_NORMAL

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

  • RINGER_MODE_SILENT

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

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

int mod = myAudioManager.getRingerMode();

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

(adjustVolume(int direction, int flags

این متد میزان صدا را تنظیم می کند

()getMode 

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

(getStreamMaxVolume (int streamType

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

(getStreamVolume (int streamType

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

()isMusicActive 

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

()startBluetoothSco 

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

()stopBluetoothSco 

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

مثال

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

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

شرح مراحل

۱ شما برای ایجاد یک برنامه اندروید تحت یک بسته com.example.sairamkrishna.myapplication از Android studio IDE استفاده خواهید کرد.
۲ برای افزودن کد AudioManager، فایل src / MainActivity.java را تغییر دهید
۳ طرح XML را تغییر دهید فایل res / layout / activity_main.xml در صورت لزوم، هر جز GUI اضافه کنید.
۴ فایل res / values ​​/ string.xml را اصلاح کرده و مولفه های لازم رشته را اضافه کنید.
۵ AndroidManifest.xml را تغییر دهید تا مجوزهای لازم را اضافه کنید.
۶ برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را تأیید کنید.

در اینجا محتوای src / MainActivity.java است

package com.example.sairamkrishna.myapplication;

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.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(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
            Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      ring.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            Toast.makeText(MainActivity.this,"Now in Ringing Mode",
               Toast.LENGTH_LONG).show();
         }
      });

      silent.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            Toast.makeText(MainActivity.this,"Now in silent Mode",
               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(MainActivity.this,"Now in Vibrate Mode",
                  Toast.LENGTH_LONG).show();
            } else if(mod==AudioManager.RINGER_MODE_NORMAL){
               Toast.makeText(MainActivity.this,"Now in Ringing Mode",
                  Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(MainActivity.this,"Now in Vibrate Mode",
                  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: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">

   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Android Audio Recording"
      android:id="@+id/textView"
      android:textSize="30dp"
      android:layout_alignParentTop="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Mode"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_marginTop="59dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Ring"
      android:id="@+id/button2"
      android:layout_alignTop="@+id/button"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="vibrate"
      android:id="@+id/button3"
      android:layout_alignTop="@+id/button2"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Silent"
      android:id="@+id/button4"
      android:layout_below="@+id/button2"
      android:layout_alignLeft="@+id/button2"
      android:layout_alignStart="@+id/button2" />     
</RelativeLayout>

در اینجا محتوای Strings.xml وجود دارد

<resources>
   <string name="app_name">My Application</string>
</resources>

در اینجا محتوای AndroidManifest.xml است

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

بیایید برنامه را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

اکنون دکمه silentرا انتخاب کنید، آیکون silent را در نوار اعلان دریافت خواهید کرد

اکنون فقط دکمه ring را انتخاب کنید و سپس دکمه current mode را فشار دهید تا ببینید آیا وضعیت آن تنظیم شده است یا خیر

اکنون دکمه Vibrate را فشار دهید و سپس دکمه current mode را فشار دهید تا ببینید تنظیم شده است یا نه. این صفحه زیر را نشان می دهد

 

منبع.

 

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید
  8. سرویس در برنامه نویسی اندروید
  9. گیرنده های پخش در برنامه نویسی اندروید
  10. ارائه دهنده محتوا در برنامه نویسی اندروید
  11. قطعات در برنامه نویسی اندروید
  12. Intent و فیلتر در برنامه نویسی اندروید
  13. طرح بندی رابط کاربری در برنامه نویسی اندروید
  14. کنترل های رابط کاربری در برنامه نویسی اندروید
  15. مدیریت رویدادها در برنامه نویسی اندروید
  16. استایل و تم ها در برنامه نویسی اندروید
  17. اجزای سفارشی در برنامه نویسی اندروید
  18. کشیدن و رها کردن در برنامه نویسی اندروید
  19. نوتیفیکیشن ها در برنامه نویسی اندروید
  20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
  21. ارسال ایمیل در برنامه نویسی اندروید
  22. ارسال پیامک در برنامه نویسی اندروید
  23. تماس های تلفنی در برنامه نویسی اندروید
  24. انتشار برنامه اندروید
  25. آموزش Alert Dialog در برنامه نویسی اندروید
  26. انیمیشن در برنامه نویسی اندروید
  27. ضبط صدا در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه