【发布时间】:2013-05-16 08:50:15
【问题描述】:
您好,我是 ios 新手,我想制作一个播放收音机的应用程序,所以该应用程序运行良好,但是当我尝试将音量添加到应用程序时,它是 cruch 并给了我这个错误:
[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; } -
实际上它不是 setVolume,为了检查是否正确,我刚刚以编程方式创建了一个新的 uislider,我调用了您在上面编写的函数,它一直给我同样的错误,新的源代码是: 是viewdidload方法我创建了一个新的uislider,我调用了上面的方法。