Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone AVAudioPlayer卷_Iphone_Ios - Fatal编程技术网

Iphone AVAudioPlayer卷

Iphone AVAudioPlayer卷,iphone,ios,Iphone,Ios,嗨,我是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 'NSInvalidArg

嗨,我是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'
这是我正在使用的源代码:

在playervewcontroller.h中:

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

@property (nonatomic,retain) AVAudioPlayer *radioPlayer;
在playervewcontroller.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];
}


有人能帮我吗?提前感谢。

请检查iAction事件是否为
UIControlEventValueChanged
首先检查您的函数名称,我想首先是setVolume。因此,请断开网络绑定并将其与卷绑定。然后试试这个来改变音量

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

并使用
UIControlEventValueChanged
绑定您的
Silder
。动作

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

  • 您已将
    radioPLayer
    声明为
    AVAudioPLayer

    @属性(非原子,保留)AVAudioPlayer*radioPlayer

  • 并将
    radioPlayer
    初始化为
    AVPlayer

    self.radioPlayer=[AVPlayer playerWithPlayerItem:playerItem]

如果你打算使用AVAudioPlayer,生活就会变得轻松。使用
属性

self.radioPlayer.volume = iSlider.value;
如果您使用的是AVPLayer,则可以参考以下步骤。没有尝试过,但似乎它帮助了很多人:

上面这一行没有任何意义。Volume.value表示setVolume&因为没有这样的方法,所以它给出了错误


根据滑块移动指定值是一个很好的方法。

检查函数名称,我认为首先是
setVolume
。因此,请断开网络绑定并将其与
绑定。试着改变音量
-(void)sliderValueChanged:(UISlider*)slider{myPlayer.volume=slider.value/100.0;}
实际上它不是setVolume,为了验证这一点,我只是以编程方式创建了一个新的UISlider,调用了您上面编写的函数,并一直给我相同的错误,新的源代码是:is viewdidload methode我创建了一个新的uislider,并调用了上面的methode。尝试根据滑块移动来分配值是因为我试图做的,而且当我尝试将音量分配给无线电播放器时,硬编码的方法不起作用,如
self.radioPlayer.volume=0.8例如。是的,它是UIControlEventValueChanged。如果我试图打印uisilder的值,则会按预期打印这些值。是的,您所说的是正确的,我声明radioPLayer为
AVAudioPLayer
,我将其初始化为
AVAudioPLayer
,因为
playerWithPlayerItem:playerItem
不适用于
AVAudioPLayer
,并且当我尝试使用
[[AVAudioPlayer alloc]initWithContentsOfURL:url错误:&错误]
收音机甚至不播放,我不知道
AVPlayer
是否不支持该流或什么!!
AVAudioPLayer
不能用于流媒体播放。
AVPlayer
必须使用。所以继续,将
radioPlayer
声明为
AVPlayer
。但是,音量不能在AVPlayer中设置,所以改为使用连接到我提到的链接,并尝试使用
AudioMix
进行设置
self.radioPlayer.volume = iSlider.value;
self.radioPlayer.volume = Volume.value;