簡體   English   中英

來自變量的AVAudioPlayer音量

[英]AVAudioPlayer volume from variable

我正在嘗試通過變量更改聲音效果的音量。 我正在使用AVAudioPlayer並調用變量來設置音量,但是無論運行什么變量,運行應用程序時我都聽不到聲音。 (.1-1.0)但是,如果我在AvAudioPlayer塊中設置了數字(player.volume = .5;),則它會做出應有的響應。 有什么想法我做錯了嗎?

我的代碼示例:

@interface

@property (nonatomic) float setVolume;

@implementation
@synthesize setVolume;

float setVolume = .5;

-(void)countdown
{
//play sound
NSString *musicFilePath = [[NSBundle mainBundle] pathForResource:@"Countdown_beep" ofType:@"wav"];
NSURL *musicURL = [[NSURL alloc] initFileURLWithPath:musicFilePath];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];
player.volume = setVolume;
[player play];

謝謝。 :)

編輯:

我通過從頭文件中刪除聲明並在實現中創建ivar來解決此問題。

這行沒有意義,與您的程序無關:

float setVolume = .5;

您已經在合成名為setVolume的屬性/ ivar。 不是嗎 因此,默認情況下,您的屬性setVolume為零,並且您沒有做任何更改,因此音量最終為零,並且沒有聲音發生。

要設置屬性的值,請設置屬性的值。 :)例如,您可以說self.setVolume = .5 例如,您可以在countdown方法或更早的其他方法中執行此操作(屬性的要點之一是該對象的所有方法都可以看到它)。

現在,您的代碼的另一個問題是您的屬性名稱以“ set”開頭。 這可能是一個壞主意。 如果我是你,我會選擇另一個名字。 最好將“ setX”形式的名稱僅用作實例變量/屬性X的setter方法的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM