2012-02-11 44 views
9

Tôi đang trong quá trình phát triển ứng dụng Android.SDK Android. audioManager. setStreamVolume Giá trị int tối đa

tôi đã có thể thiết lập thành công âm lượng loa sử dụng:

AudioManager audioManager = (Audiomanager)getSystemService(Context.AUDIO_SERVICE); 

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, sb2value, 0); 

Câu hỏi đặt ra là, max int giá trị mà "sb2value" có thể là những gì?

FYI, "sb2value" là giá trị từ thanh trượt. Khi người dùng trượt, âm lượng âm thanh được thay đổi.

Tôi cho phép giá trị thanh trượt đó đi từ 0 - 100. Có thể sử dụng giá trị 100 làm giá trị đối số thứ hai hoặc giới hạn thấp hơn, chẳng hạn như 20 không?

Xin cảm ơn,

P.S. Hầu hết các câu hỏi của tôi trông giống nhau bởi vì tôi mới, hiểu rằng mỗi câu hỏi cần một bài đăng mới và tôi có rất nhiều vấn đề cho một chương trình đơn giản.

Trả lời

15

Để có được khối lượng tối đa bạn có thể thiết lập sb2value:

sb2value = audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC); 
+1

Đây là những gì tôi đã làm. Tôi muốn khối lượng có khả năng được thay đổi giữa 0 và 100. Tôi giữ biến sb2value của tôi. Tôi tạo ra một biến thứ hai và nhận được số nguyên khối lượng tối đa cho phép bằng cách sử dụng hàm của bạn, chia cho 100 (giá trị tối đa mong muốn của tôi), và sau đó nhiều nó bằng giá trị hiện tại mà tại đó sb2value là tại. Điều này cho phép tôi thay đổi hầu như bất kỳ âm lượng của điện thoại từ tối thiểu đến tối đa với gia số ở giữa. –

+0

Nhưng, tôi không thể nhớ nếu INT có thể giữ số thập phân. –

+0

Truyền, từ C++ ... sb2value đã là một int. Tôi có nghĩa là câu trả lời kết quả có thể kết thúc như một số thập phân. nếu sb2value = 100, 10 (StreamMax)/100 = 0,1. Dù sao thì cũng tốt. –

5

Bạn có thể sử dụng phương thức getStreamMaxVolume(int) để nhận giá trị bạn cần. Hi vọng điêu nay co ich.

3

Thay vì cứng mã hóa các giá trị tối đa của thanh trượt của bạn (hoặc SeekBar nếu bạn đang sử dụng đó), thiết lập các thuộc tính Max để audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC) này sẽ làm việc tốt hơn bởi vì các thiết bị khác nhau có thể có giới hạn âm lượng khác nhau.

Theo giới hạn thực tế, tôi tưởng tượng nó không ở trên 10.

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