0

どこでも検索しましたが、問題の答えが見つかりませんでした。

アプリで複数のサウンドを再生し、ユーザーがボタンで音量を調整できるようにします。したがって、ユーザーが必要に応じて、.5ボリュームで再生できます。だから私はこのコードを持っています:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Orchestra" ofType:@"mp3"];
theOrchestras = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath: path] error: NULL];
[theOrchestras play];

音量を下げるには、次のようにします。

- (IBAction) volumeReduced  {
    theOrchestras.volume = 0.5;
}

音が鳴っているときは音量を下げても問題ありません。ただし、音が止まって再び再生されると、音量は常に1に戻ります。

これを修正するために、ボリュームを整数として保存しようとしましたが、何らかの理由で値が常に0であるため、機能させることができませんでした。

.m

 int64_t * volumeSaved;

.h

- (IBAction) volumeReduced  {
    volumeSaved = .5;
}

NSString *path = [[NSBundle mainBundle] pathForResource:@"Orchestra" ofType:@"mp3"];
theOrchestras = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath: path] error: NULL];
theOrchestras.volume = volumeSaved;
[theOrchestras play];

ただし、オーディオは常に0の音量で再生され、ミュートされています。

ボタンでこれを行う方法はありますか?

ありがとう!

4

2 に答える 2

2

volumeSaved整数ではなく整数へのポインタとして宣言していますが、整数のように割り当てています。それは奇妙なことです。

しかし、あなたの本当の問題は、のvolumeプロパティがでAVAudioPlayerあり、floatではないということint64_tです。したがって、タイプを次のように変更します。

float volumeSaved;
于 2012-05-14T18:31:37.793 に答える
-1

NSNumberでボリュームを保存してみてください。

于 2012-05-14T18:29:27.220 に答える