如何在Avplayer中设置音量

时间:2011-04-01 06:01:29

标签: iphone

我有从iPod库播放歌曲的应用程序,我还必须在后台播放这首歌,所以我需要使用avplayer。但我没有设定它的音量。是他们设定音量的任何方式。

4 个答案:

答案 0 :(得分:1)

带有音量滑块的通知弹出窗口 - Hoper有助于:

- (IBAction)volume{
    MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame: CGRectMake(10, 37, 260, 20)] autorelease];

    UIAlertView *volumeAlert = [[UIAlertView alloc] initWithTitle:@"Volume" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [volumeView sizeToFit];
    [volumeAlert addSubview:volumeView];

    /*
    for (UIView *view in [volumeView subviews]) {
        if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) {
            volumeViewSlider = view;
        }
    }*/

    [volumeAlert show];
    [volumeAlert release];
}

答案 1 :(得分:1)

您无法使用AVAudioPlayer播放ipod-Library曲目。 AVAssetExportSession在IOS.5中有一个BUG,因此它无法从mainbundle中的iPod库导出,所以如果你想播放iPod曲目,你就会被卡住AVPlayer。可悲的是,只有硬件按钮才能控制音量。

答案 2 :(得分:0)

请检查此Adjusting the volume of a playing AVPlayer

如果您可以使用AVAudioPlayer,则可以轻松使用其属性volume

答案 3 :(得分:0)

要使用滑块并使用此代码,

在.h文件中编写此代码,不要忘记实现AVAudio框架,

 #import   UIKit/UIKit.h>
 #import    Foundation/Foundation.h>
 #import    AVFoundation/AVFoundation.h>

@interface volumechangerViewController : UIViewController <AVAudioPlayerDelegate>
{
    IBOutlet UIButton *button;
    IBOutlet UISlider *volumeslider;
    NSTimer *volumetimer;
    AVAudioPlayer *audioplayer;

}

-(IBAction) pushplay;
@end

在.m文件中,

-(IBAction) pushplay{

  //NSError *err;
    NSString *filepath = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
    audioplayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:filepath] error:NULL];
    audioplayer.delegate = self;
    [audioplayer play];

    volumetimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(updatevolume) userInfo:nil repeats:YES];
}

-(void) updatevolume{
   [audioplayer setVolume:volumeslider.value];
}

希望这有助于朋友。