2010-07-08 37 views
5

Tôi đang tạo một ứng dụng trong đó âm thanh được phát khi một nút được nhấn và sử dụng UISlider với âm lượng có thể được điều chỉnh. Đôi khi âm lượng của âm thanh quá cao và đôi khi quá thấp ngay cả sau khi tăng âm lượng của iphone lên full.Làm thế nào tôi có thể giữ âm lượng luôn cao? bất kỳ cách nào có thể để tích hợp khối lượng hệ thống với khối lượng thanh trượt? Sử dụng MPVolumview sẽ nhận được ứng dụng của tôi từ chối tôi đoán .. mã tôi đang sử dụng trên nút cảm ứng là nàyĐiều khiển âm lượng bằng UIslider Iphone?

NSString* resourcePath = [[NSBundle mainBundle] resourcePath]; 
resourcePath = [resourcePath stringByAppendingString:@"/sound.mp3"]; 
NSLog(@"Path to play: %@", resourcePath); 



player = [[AVAudioPlayer alloc] initWithContentsOfURL: 
      [NSURL fileURLWithPath:resourcePath] error:&err]; 

    player.delegate = self; 
    [player play]; 
    player.volume=.50; 
    player.numberOfLoops=-10; 

-(IBAction)slidervaluechanged 
{ player.volume=slider.value; } 

}

Trả lời

3

Hemant,

Khối lượng tối đa mà bạn có thể có là khi player.volume là tương đương với 1.0 (miễn là âm lượng chuông cũng là tối đa).

Nếu âm lượng chuông không phải là tối đa, bạn chỉ có thể tăng cao như bất cứ điều gì nó là bởi một lần nữa bằng cách sử dụng giá trị của 1.0

Tuy nhiên, bạn có thể thực hiện các MPVolumeView (Tôi gần như tích cực, như Pandora làm điều đó) và sau đó bạn sử dụng thanh trượt đó trong ứng dụng của mình để thay thế. Sau đó, bạn chỉ có thể đặt player.volume luôn bằng 1.0 và để thanh trượt thay đổi âm lượng chuông.

Thông tin thêm về nếu bạn muốn sử dụng MPVolumeView: http://developer.apple.com/iphone/library/documentation/MediaPlayer/Reference/MPVolumeView_Class/Reference/Reference.htmlHow do you implement an MPVolumeView?

Tôi có thể sai, nhưng tôi nghĩ rằng Apple cho phép MPVolumeView nếu bạn sử dụng nó như nó vốn có. Họ nói trong tham chiếu lớp rằng bây giờ nó thay đổi âm lượng chuông thiết bị khi bạn di chuyển thanh trượt (mà nó không được sử dụng và đó là lý do tại sao mọi người phải truy cập API riêng để làm). Tôi sẽ cố gắng và thực hiện nó trên bản cập nhật tiếp theo của tôi ở đây trong một tuần, vì vậy nếu tôi bị từ chối, tôi sẽ quay lại đây và cập nhật bài đăng này để cho mọi người biết.

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