大家好,我是ios新手,我想做一个播放收音机的应用程序,所以这个应用程序工作得很好,但当我试图将音量添加到应用程序中时,它很粗糙,并给出了这个错误:
[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;
}}
所以有没有人能帮我一下?谢谢你的预支。
发布于 2013-05-16 16:58:06
首先检查你的函数的名称,我想首先它是setVolume。因此,取消disconnet绑定并将其与Volume绑定。并尝试此操作来更改音量
- (void)sliderValueChanged:(UISlider *)slider
{
myPlayer.volume = slider.value / 100.0;
}并将您的Silder与UIControlEventValueChanged绑定。动作
发布于 2013-05-16 17:01:34
首先,你使用的是AVPLayer还是AVAudioPlayer。我在问这个问题,因为
radioPLayer声明为AVAudioPLayer。@ *radioPlayer;
radioPlayer初始化为AVPlayerplayerWithPlayerItem:playerItem; = self.radioPlayer = AVPlayer
如果你打算使用AVAudioPlayer,生活就会变得简单。使用volume属性
self.radioPlayer.volume = iSlider.value;如果您使用的是AVPLayer,则可以参考以下步骤。没有尝试过,但似乎帮助了很多人:https://stackoverflow.com/a/6178912/942966
发布于 2013-05-16 16:56:35
请检查IBAction事件是否为UIControlEventValueChanged
https://stackoverflow.com/questions/16582930
复制相似问题