簡體   English   中英

AVAudioPlayer卷

[英]AVAudioPlayer volume

嗨,我是ios的新手,我想制作一個播放收音機的應用程序,所以應用程序工作正常,但當我試圖將音量包含到應用程序時,它是cru並且給了我這個錯誤:

[AVPlayer setVolume:]: unrecognized selector sent to instance 0x9d4f500
2013-05-16 09:34:47.785 RadioFM[22061:12503] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AVPlayer setVolume:]: unrecognized selector sent to instance 0x9d4f500'

這是我正在使用的源代碼:

在PlayerViewController.h中:

@interface PlayerViewController : UIViewController
{ AVAudioPlayer *radioPlayer; IBOutlet UISlider *Volume; }
- (IBAction)Volume:(id)sender;

@property (nonatomic,retain) AVAudioPlayer *radioPlayer;

並在PlayerViewController.m中:

@synthesize radioPlayer;

- (void)viewDidLoad
{
    NSString *RadStream=<@Radio stream>;
    NSURL *url=[NSURL URLWithString:RadStream];
    NSError *error;
    AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
    self.radioPlayer = [AVPlayer playerWithPlayerItem:playerItem];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self.radioPlayer play];
    [super viewDidLoad];

}

我有一個滑塊視圖,在這個滑塊的動作我有:

- (IBAction)Volume:(id)sender {
if (self.radioPlayer != nil)
{
    self.radioPlayer.volume = Volume.value;
}

}

所以請任何人幫我這個嗎? 謝謝你提前。

首先檢查你的功能名稱我認為首先它是setVolume。 所以disconnet綁定並將其與Volume綁定。 並嘗試這樣來改變音量

- (void)sliderValueChanged:(UISlider *)slider 
{ 
myPlayer.volume = slider.value / 100.0; 
}

並使用UIControlEventValueChanged綁定您的Silder 行動

首先,您使用的是AVPLayer還是AVAudioPlayer。 我問這個問題,因為

  • 你已經將radioPLayer聲明為AVAudioPLayer

    @property(nonatomic,retain)AVAudioPlayer * radioPlayer;

  • 並將radioPlayer初始化為AVPlayer

    self.radioPlayer = [AVPlayer playerWithPlayerItem:playerItem];

如果您打算使用AVAudioPlayer,生活變得輕松。 使用volume屬性

self.radioPlayer.volume = iSlider.value;

如果您使用的是AVPLayer,則可以參考這些步驟。 沒試過,但似乎它幫了很多: https//stackoverflow.com/a/6178912/942966

請檢查IBAction事件是否為UIControlEventValueChanged

self.radioPlayer.volume = Volume.value;

上面的行沒有任何意義。 Volume.value表示setVolume&因為沒有這樣的方法,它給出了錯誤。

根據滑塊移動分配值是好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM