Как узнать, является ли воспроизведение звука медиа или голосом?

Я работаю над приложением для Android, которое выполняет маршрутизацию звука на динамик/проводную гарнитуру. Учитывая, что какой-то звук воспроизводится, можно ли программно определить, является ли воспроизводимый звук песней (медиаклипом) или это голос установленного вызова, используя java?

EDIT: я понял, что могу легко решить свою проблему, потому что, когда я получаю или делаю вызов, можно услышать только этот голос. Есть ли функция, которая определяет, разговариваю я по телефону или нет?


person SoulRayder    schedule 08.01.2014    source источник
comment
если вы записываете звонок и хотите различать их, то это легко распознать по сохраненному расширению файла.   -  person praveen    schedule 08.01.2014
comment
Нет Нет.. Я слушаю либо песню, либо мне звонят. Теперь можно ли программно узнать, звук, который я слышу, это песня или это голос из звонка?   -  person SoulRayder    schedule 08.01.2014
comment
Пожалуйста, проверьте мое редактирование.   -  person SoulRayder    schedule 08.01.2014


Ответы (1)


Попробуйте эту функцию:

public boolean isOnCall(Context context){
   AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
   if(manager.getMode()==AudioManager.MODE_IN_CALL){
       return true;
   }
   else{
       return false;
   }
}

Добавьте разрешение в манифест тоже.

<uses-permission android:name="android.permission.READ_PHONE_STATE" />  

Надеюсь это поможет.

person MysticMagicϡ    schedule 08.01.2014
comment
Превосходно. Спасибо за простое решение. :) - person SoulRayder; 08.01.2014
comment
Хорошее решение, но как изменить режим? Я пробовал другое решение, но не работал - person Ahmad Arslan; 01.11.2018