开始和停止声音(提供代码)iOS

问题描述:

我有一个声音,它通过我的服务器通过http播放。然而它成功地播放了我的服务器,但声音似乎没有停止。我试着编码停止,但我没有运气。帮助表示赞赏开始和停止声音(提供代码)iOS

- (IBAction)oneSound:(id)sender; { 
    if (ButtonAlReadyClicked == 1) 
    { 
     ButtonAlReadyClicked = 2; 

     [sender setBackgroundImage:[UIImage imageNamed:@"m2.png"] forState:UIControlStateNormal]; 

    } 
    else if (ButtonAlReadyClicked == 2) 
    { 
     ButtonAlReadyClicked = 1; 

     [sender setBackgroundImage:[UIImage imageNamed:@"m1.png"] forState:UIControlStateNormal]; 

    } 
    if (player && player.playing) { 
     [player stop]; 
     [player release]; 
     player = nil; 
     return; 
    }  

    AVPlayer *player = [[AVPlayer playerWithURL:[NSURL URLWithString:@"http://www.mysite.com/hi.mp3"]] retain]; 

    [player play]; 

} 

这是我得到的错误是“错误:使用未声明的标识符的‘玩家’[3]

,因为你有player作为一个局部变量,而不是一个实例的if (player …线始终返回false伊娃。将player ivar添加到您的.h文件中,然后将您初始化的那个保存到它,而不是保存到本地播放器。

+0

我得到错误“的错误:语义问题:房产‘打’不是类型的对象中找到‘AVPlayer *’ ” –

+0

这是因为AVPlayer没有播放特性。检查文档:http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html – coneybeare

您需要在您的.h文件中声明一个名为player的实例化播放器,并在点击该按钮时声明一个变量。你得到错误的原因是因为播放器变量是在你尝试访问变量和它的属性之后声明的。

- (IBAction)oneSound:(id)sender { 
    if (player == nil) { 
     player = [[AVPlayer playerWithURL:[NSURL URLWithString:@"http://www.mysite.com/hi.mp3"]] retain]; 
     [player play]; 
     ButtonAlReadyClicked = 1; 
     [self oneSound:sender]; 
     return; 
    } 
    if (ButtonAlReadyClicked == 1) { 
     ButtonAlReadyClicked = 2; 
     [sender setBackgroundImage:[UIImage imageNamed:@"m2.png"] forState:UIControlStateNormal]; 
    } 
    else if (ButtonAlReadyClicked == 2) 
    { 
     ButtonAlReadyClicked = 1; 
     [sender setBackgroundImage:[UIImage imageNamed:@"m1.png"] forState:UIControlStateNormal]; 
    } 
    if (player && player.playing) { 
     [player stop]; 
     [player release]; 
     player = nil; 
     return; 
    }  

} 
+0

这仍然是不正确的,你有它。这是一个本地播放器对象,而不是一个实例变量 – coneybeare

+0

我可以证实,没有工作,欣赏试图帮助,虽然! –

+0

我从来没有说过这样做,我很欣赏你尝试过,但它是作为你可以做的事情的一个例子。我认为这是用'ButtonAlReadyClicked'完成的东西。编辑 - 删除'AVPlayer *播放器'我留下了意外。 @coneybeare –