web-dev-qa-db-ja.com

通話中に音楽を再生して、パートナーが聞くことができるようにすることは可能ですか? Android

Call Cheater (元々はSymbian OS用に開発された)のようなアプリを作成しようとしています

電話での会話中に、受信者と発信者が同じ音または音楽を聞く必要がある音楽を再生することは可能ですか?

はいの場合、どうすればこれを実装できますか?

10
Sai

不可能なため、これを行うアプリを見つけることができませんでした。

ドキュメントには、明確に記載されています( here ):

:オーディオデータは標準出力デバイスでのみ再生できます。現在、それはモバイルデバイスのスピーカーまたはBluetoothヘッドセットです。通話中に会話の音声でサウンドファイルを再生することはできません。

この決定の背後にある理由は、おそらくセキュリティに関係しています。この機能を短所に使用できるシナリオがいくつかあります。

(OPは this と非常に似ているため、基本的に同じ答えを出します)

11
Sebastiano

私はこれが一つのケースで可能だと思う

1。Androidこれを処理するデバイスのネイティブ音楽プレーヤーの一部は、通話がTelephonyManager.EXTRA_STATE_OFFHOOK(OFFHOOK STATE)にあるときに音楽を制限するため、次を使用してバックグラウンドミュージックを再生する方法はありません。ネイティブプレーヤーと「poweramp music palyer」のような他のプレーヤー

2.MediaPlayerクラスを使用することもできません(ドキュメントに明記されています)

3.カスタムミュージックプレーヤーの開発(MediaPlayerクラスを使用しない)が実装されている場合、1つの場合にのみ可能

これを使用してAudioManager.OnAudioFocusChangeListenerを使用すると、次のコードでオーディオマネージャーの状態を取得できます。音楽。あなたの要求によると、質問は、コールがオフフック状態にあるときに音楽を再生するかどうかを尋ねました。オフフック状態で音楽の再生を一時停止しないでください。これは、ヘッドセットが無効になっている場合にのみ可能です

AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);

    OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
            if (focusChange == AUDIOFOCUS_LOSS_TRANSIENT
                // Pause playback (during incoming call) 
            } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
                // Resume playback (incoming call ends)
            } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
                am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
                am.abandonAudioFocus(afChangeListener);
                // Stop playback (when any other app playing music  in that situation current app stop the audio)
            }
        }
    };
2
KomalG

2つの答えは、両方とも有効です。あなたがどれほどいい加減になるかによって異なります。

1)いいえ、現在、電話での会話に音声を挿入することはできません。

2)はい、可能です。それはまた、見苦しくて見苦しいものです。携帯電話のハンズフリー機能をオンにします。メディアプレーヤーを作成し、メディアソースを設定し、ボリュームを1.0f(最高)に設定して、player.start()を呼び出します。電話機のマイクとスピーカーの品質が適切な場合、通話の相手には音楽が聞こえます。また、彼または彼女は、あなたの言うことだけでなく、あなたのすぐ近くの周囲の音や他の音も聞き続けます。

2
MarsAtomic

いいえ、できません。しかし、もっと掘り下げたい場合は、 Android VoIPのGSMゲートウェイとして電話)を使用 にアクセスできます。

Androidを現在の形式のGSMゲートウェイとして使用することはできません。カスタムのROMをフラッシュした後でも、独自のRIL(無線インターフェース層)ハードウェア1と2(APIの制限)は、オープンソースコミュニティがソースコードを使用できるようにするために削除できますが、ハードル3(独自のRIL)はハードウェアベンダーに依存しています。デバイスドライバーコードを利用可能にします。

1
Nasir Iqbal

はい、Sony ericsson xylophone w20で可能です。2010年にこの電話を入手しましたが、このタイプの電話はまだ見ていません。

0
Amresh kumar

それは不可能だと思います。 Google Playの PHONE MUSIC というアプリを見つけましたが、「誰かがあなたを保留にすると、ホバリング中の音符を押すだけで音楽を再生できます。または、電話で誰かが君は。 "

0
DEADPOOL
Note: You can play back the audio data only to the standard output device.
Currently, that is the mobile device speaker or a Bluetooth headset. You 
cannot play sound files in the conversation audio during a call.

See official link 

http://developer.Android.com/guide/topics/media/mediaplayer.html

0
Akash