2012-02-22 31 views
11

Trong Android, AudioEffect API, tất cả các hiệu ứng dựng sẵn như Equalizer đi kèm với một cảnh báoCách ưa thích để đính kèm AudioEffect vào kết hợp toàn cầu?

"GHI CHÚ:. Gắn một Equalizer để trộn đầu ra âm thanh toàn cầu bằng cách sử dụng các phiên 0 bị phản đối"

Nếu điều này không được chấp nhận, thì API thay thế là gì? Mục tiêu của tôi để đính kèm hiệu ứng vào kết hợp đầu ra toàn cầu ...

Trả lời

4

Có nó không còn được dùng nữa, vì side-effects isues.

Trang web nhà phát triển Android khẳng định rằng tham số thứ hai của lớp Equalizer nên là:

Một hệ thống rộng nhận dạng phiên âm thanh độc đáo. Bộ chỉnh âm sẽ là được gắn với MediaPlayer hoặc AudioTrack trong cùng một phiên âm thanh.

Bạn nên sử dụng này để thay thế:

MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setDataSource(_your_data_source_); 
Equalizer equalizer = new Equalizer(0, mediaPlayer.getAudioSessionId()); 
equalizer.setEnabled(true); 
/* Do your stuff ... */ 
mediaPlayer.start(); 
+0

Như đã đề cập trong một trong những ý kiến ​​về liên kết của bạn, đây không phải là một công việc xung quanh, trong trường hợp bạn muốn áp dụng Equalizer hoặc ảnh hưởng khác đến một luồng hiện tại hoặc tất cả các luồng. – yano

+0

Hiện tại bạn vẫn có thể sử dụng phiên âm thanh chung với "Bộ chỉnh âm". Không có sự thay thế, việc ngưng sử dụng không phải luôn luôn thay thế. Họ chỉ thấy rằng điều này dường như không hoạt động tốt và quyết định giữ một hỗ trợ cho điều này cho đến khi phát hành Android tiếp theo. Cách giải quyết trong trường hợp của bạn là đính kèm Bộ chỉnh âm cho mỗi phiên bản MediaPlayer trên các ứng dụng của bạn. Nếu không, có nguy cơ giữ một 'Equalizer' gắn liền với phiên âm thanh toàn cầu biết rằng nó chắc chắn sẽ không chạy trên các bản phát hành thêm. –

+0

Xin chào Halim, Cách đính kèm eqaulizer cho mỗi phiên bản MediaPlayer? Vui lòng chia sẻ thêm thông tin về điều đó. Ngoài ra thay thế để đính kèm hiệu ứng trên toàn cầu trong ICS là gì? – JRC

Các vấn đề liên quan