2011-11-06 36 views
0

我有一個聲音,它通過我的服務器通過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]

回答

0

,因爲你有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

0

您需要在您的.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 –