繁体   English   中英

启动和停止声音(提供代码)iOS

[英]Starting & Stopping a sound (Code provided) iOS

我只有一个声音,它通过服务器通过http播放。 但是它可以通过我的服务器成功播放,但声音似乎并没有停止。 我试图将其编码为停止,但是我没有运气。 感谢帮助

- (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];

}

我得到的错误是'错误:使用未声明的标识符'player'[3]

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

您需要在.h文件中声明一个名为player和实例化播放器的变量,单击该按钮即可。 出现错误的原因是,在尝试访问变量及其属性后,声明了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;
    }    

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM