首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioPlayer卷

AVAudioPlayer卷
EN

Stack Overflow用户
提问于 2013-05-16 16:50:15
回答 4查看 2.4K关注 0票数 0

大家好,我是ios新手,我想做一个播放收音机的应用程序,所以这个应用程序工作得很好,但当我试图将音量添加到应用程序中时,它很粗糙,并给出了这个错误:

代码语言:javascript
复制
[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中:

代码语言:javascript
复制
@interface PlayerViewController : UIViewController
{ AVAudioPlayer *radioPlayer; IBOutlet UISlider *Volume; }
- (IBAction)Volume:(id)sender;

@property (nonatomic,retain) AVAudioPlayer *radioPlayer;

在PlayerViewController.m中:

代码语言:javascript
复制
@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];

}

我有一个滑块视图,在这个滑块的作用下,我有:

代码语言:javascript
复制
- (IBAction)Volume:(id)sender {
if (self.radioPlayer != nil)
{
    self.radioPlayer.volume = Volume.value;
}

}

所以有没有人能帮我一下?谢谢你的预支。

EN

回答 4

Stack Overflow用户

发布于 2013-05-16 16:58:06

首先检查你的函数的名称,我想首先它是setVolume。因此,取消disconnet绑定并将其与Volume绑定。并尝试此操作来更改音量

代码语言:javascript
复制
- (void)sliderValueChanged:(UISlider *)slider 
{ 
myPlayer.volume = slider.value / 100.0; 
}

并将您的SilderUIControlEventValueChanged绑定。动作

票数 1
EN

Stack Overflow用户

发布于 2013-05-16 17:01:34

首先,你使用的是AVPLayer还是AVAudioPlayer。我在问这个问题,因为

  • 您已将radioPLayer声明为AVAudioPLayer

@ *radioPlayer;

  • and (非原子,保留) AVAudioPlayer属性将radioPlayer初始化为AVPlayer

playerWithPlayerItem:playerItem; = self.radioPlayer = AVPlayer

如果你打算使用AVAudioPlayer,生活就会变得简单。使用volume属性

代码语言:javascript
复制
self.radioPlayer.volume = iSlider.value;

如果您使用的是AVPLayer,则可以参考以下步骤。没有尝试过,但似乎帮助了很多人:https://stackoverflow.com/a/6178912/942966

票数 1
EN

Stack Overflow用户

发布于 2013-05-16 16:56:35

请检查IBAction事件是否为UIControlEventValueChanged

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16582930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档