2015-01-22 16 views
6

Đối với ứng dụng Android của tôi, tôi muốn phát tệp âm thanh sau khi trả lời cuộc gọi từ ứng dụng của tôi. Ứng dụng sẽ bắt đầu cuộc gọi điện thoại và khi người nhận nhận cuộc gọi, ứng dụng sẽ bắt đầu phát tệp âm thanh đã ghi.Tệp âm thanh phát trên Android trong khi gọi điện thoại

Bằng cách tìm kiếm rất nhiều trong Google, tôi thấy rằng điều này không thể trực tiếp có thể cho thiết bị chưa được phát hành.

Nhưng bất kỳ phương án nào khác hay cách khác để đạt được điều này?

Tôi muốn thực hiện điều này vì chức năng của ứng dụng là: nếu người dùng ứng dụng gặp sự cố, anh ấy chỉ cần nhấn nút trợ giúp trong ứng dụng và sau đó ứng dụng sẽ bắt đầu gọi cho người liên hệ được đề cập và sẽ phát tệp âm thanh đã ghi khi người đó nhận được cuộc gọi.

+0

hai câu hỏi khác nhau một thực tế, * 1. * hiện tại * một khi người nhận nhận cuộc gọi * là không thể thông qua apis android, [mở trên android AOSP] (https://code.google.com/p/android/issues/detail?id= 14266), * 2. * một số giải pháp có sẵn để phát nhạc như [stream-audio trong khi gọi] (http://stackoverflow.com/questions/4833522/my-streaming-audio-player-continues-to-play-during -a-phone-call-cannot-make-it), không hoàn toàn sạch sẽ và kết quả có thể khác nhau từ thiết bị đến thiết bị – user2450263

+0

Đưa âm thanh vào đường dẫn cuộc gọi thoại từ một ứng dụng không được Android hỗ trợ. Cho dù bạn có thể làm như vậy trên thiết bị gốc hay không, phụ thuộc vào nền tảng thiết bị nào dựa trên (và vì vậy, bất kỳ giải pháp nào bạn đưa ra có thể là nền tảng cụ thể và có thể yêu cầu sửa đổi bản thân Android ROM), xem ví dụ http://stackoverflow.com/questions/15204570/inject-uplink-audio-in-call-with-snapdragon-msm8960-soc/15205455#15205455 hoặc http://stackoverflow.com/questions/14432521/background-music- cho cuộc gọi/14433414 # 14433414 – Michael

Trả lời

5

Đọc các bước:

1.Some của máy nghe nhạc có nguồn gốc trong thiết bị Android nơi xử lý này, họ hạn chế âm nhạc khi cuộc gọi là trong TelephonyManager.EXTRA_STATE_OFFHOOK (OFFHOOK NHÀ NƯỚC) vì vậy không có cách chơi nhạc nền bằng cách sử dụng trình phát gốc.But trong một số aps của bên thứ ba như "âm nhạc poweramp palyer" có thể.

2.By sử dụng lớp MediaPlayer cũng không thể (nêu rõ trong tài liệu)

3.It có thể chỉ trong một trường hợp nếu bạn đang phát triển máy nghe nhạc tùy chỉnh (với bằng cách sử dụng lớp MediaPlayer) trong đó thực hiện

AudioManager.OnAudioFocusChangeListener bằng cách sử dụng điều này bạn có thể nhận trạng thái của audiomanager trong mã bên dưới "focusChange = AUDIOFOCUS_LOSS_TRANSIENT" (trạng thái này gọi khi nhạc đang phát trong nền bất kỳ cuộc gọi đến) trạng thái này hoàn toàn trong tay nhà phát triển cho dù chơi hay tạm dừng nhạc. Theo ý kiến ​​của bạn về câu hỏi mà bạn đã hỏi nếu bạn muốn phát nhạc khi cuộc gọi ở trạng thái OFFHOOK STATE không dừng phát nhạc ở trạng thái OFFHOOK STATE. Và điều này chỉ có thể khi tai nghe bị tắt

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) 
     } 
    } 
}; 
Các vấn đề liên quan