2013-05-19 48 views
7

Tôi đang cố gắng tạo và ứng dụng như Call Cheater (Được phát triển cho hệ điều hành Symbian)Có thể phát nhạc trong khi gọi để đối tác có thể nghe không? Android

Có thể phát nhạc trong cuộc trò chuyện điện thoại mà người nhận và người gọi có nghe cùng âm thanh hoặc âm nhạc không?

Nếu có, tôi có thể triển khai điều này bằng cách nào?

+1

Khi tôi thực hiện cuộc gọi, tôi có thể nghe thấy âm thanh của Thông báo của một ứng dụng khác. Có thể bằng cách này với khối lượng tăng lên được thực hiện? –

Trả lời

2

Hai câu trả lời, cả hai hợp lệ, tùy thuộc vào cách cẩu thả bạn muốn trở thành:

1) Không, nó không phải là hiện nay có thể phải tiêm âm thanh vào một cuộc trò chuyện điện thoại.

2) Có, có thể. Nó cũng là một kludge xấu xí, xấu xí. Bật chức năng rảnh tay của điện thoại. Tạo trình phát đa phương tiện, đặt nguồn phương tiện, đặt âm lượng thành 1.0f (cao nhất) và gọi player.start(). Nếu micrô và loa trên điện thoại có chất lượng hợp lý, bên kia sẽ thực hiện cuộc gọi sẽ nghe nhạc. Người đó cũng sẽ tiếp tục nghe bất cứ điều gì bạn nói, cũng như môi trường xung quanh và các âm thanh khác trong vùng lân cận của bạn.

+0

Có thể làm cho âm lượng của thiết bị to hơn khi tôi đang gọi điện không? Ý tôi là khi tôi nhận cuộc gọi tự động, âm lượng của âm nhạc trở nên mềm hơn. Có cách nào để giữ âm lượng không thay đổi không? – Developer

+0

Bạn đang làm việc 2) đang hoạt động? những gì về echo hủy bỏ? – B770

+0

@ B770, có vẻ như việc hủy bỏ tiếng vọng là một vấn đề. –

10

Bạn không thể tìm thấy ứng dụng thực hiện điều này vì không thể thực hiện.

Các tài liệu nêu rõ (here):

Note: Bạn có thể chơi lại các dữ liệu âm thanh chỉ với tiêu chuẩn thiết bị đầu ra . Hiện tại, đó là loa thiết bị di động hoặc tai nghe Bluetooth . Bạn không thể phát tệp âm thanh trong âm thanh cuộc hội thoại trong khi gọi cuộc gọi.

Lý do đằng sau quyết định này có thể liên quan đến bảo mật: có một số tình huống mà khả năng này có thể được sử dụng để chống.

(OP là rất giống với this, do đó tôi về cơ bản đưa ra các câu trả lời giống nhau)

+0

Sau đó, kết quả trong một số điện thoại dựa trên Symbian của Nokia Low end có thể phát các bài hát mà bên kia cũng có thể nghe thấy. Tôi có nghĩa là trong Android quá tôi có thể chơi âm thanh trong khi gọi, nó có thể và tôi đang làm nó, vấn đề duy nhất là BÊN KHÁC không thể nghe thấy âm thanh đó. –

+0

Trạng thái và phương tiện của tài liệu là chính xác những gì bạn đang nói: bạn sẽ không thể phát âm thanh vừa được bạn và bên kia nghe thấy. – Sebastiano

+0

Có câu trả lời thứ hai cho câu hỏi này nói rằng nó được thực hiện, nhưng họ là một số vấn đề vang vọng. Hãy bình luận về điều đó. –

2

Tôi nghĩ rằng đây có thể trong một trường hợp

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 STATE) vì vậy không có cách nào để phát nhạc nền bằng trình phát bản địa và một số trình phát khác như "poweramp music palyer"

2.Bằng cách sử dụng lớp MediaPlayer cũng không thể (được đề cập rõ ràng trong documentati) trên)

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 này, bạn có thể nhận được 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 ở chế độ nền bất kỳ cuộc gọi đến nào), trạng thái này hoàn toàn nằm trong tay các nhà phát triển có nên phát hoặc tạm dừng nhạc hay không. Như theo requriment của bạn như cho câu hỏi mà bạn hỏi nếu bạn muốn chơi nhạc khi gọi là trong OFFHOOK STATE không dừng chơi nhạc trong OFFHOOK STATE.Và điều này chỉ có thể khi tai nghe bị vô hiệu hóa

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) 
      } 
     } 
    }; 
+0

Tôi đã thử [link] này (http://www.vogella.com/tutorials/AndroidMedia/article.html) nhưng công việc dint. Bất kỳ ý tưởng tại sao như vậy. Có thể phát âm thanh bằng mã khi nhấp vào một số nút nhưng không phải khi đang gọi. – Jaikrat

+0

cùng một câu trả lời: http://stackoverflow.com/a/28082737/1280156 – Hulk

0

Không, Nó không phải là tốt. Nhưng nếu bạn muốn khai thác nó nhiều hơn, thì bạn có thể truy cập Using Android phone as GSM Gateway for VoIP nơi tác giả đã kết luận rằng

Không thể sử dụng Android làm Cổng GSM ở dạng hiện tại. Ngay cả sau khi flash ROM tùy chỉnh vì chúng cũng phụ thuộc vào các phần cứng RIL (Radio Interface Layer) độc quyền. Rào cản 1 và 2 (giới hạn API) có thể bị xóa vì mã nguồn có sẵn cho cộng đồng nguồn mở để làm cho nó có thể. Tuy nhiên, rào cản 3 (RIL độc quyền) phụ thuộc vào các nhà cung cấp phần cứng. Các nhà cung cấp phần cứng thường không làm cho mã trình điều khiển thiết bị của họ có sẵn.

0

Tôi nghĩ điều đó là không thể. Mặc dù tôi tìm thấy một ứng dụng từ google play được gọi là PHONE MUSIC tuyên bố: "Vì vậy, khi ai đó đặt bạn giữ lại chỉ cần nhấn ghi chú âm nhạc lơ lửng và bắt đầu chơi nhạc. Hoặc chơi nhạc trong khi ai đó trên điện thoại với bạn."

0

Có nó có thể trong Sony ericssion xylophone w20. Tôi đã có điện thoại này trong năm 2010. nhưng loại điện thoại này tôi đã không nhìn thấy.