2009-07-20 15 views
1

私は様々な見解を持つアプリを持っています。 メインメニューにはサウンドはありませんが、次のビューはAVAudioPlayerクラスを使用してサウンドを再生します。iPhoneアプリケーションにサウンドを追加する標準的な方法(グローバルボリュームインジケータ)

だから、誰かがアプリを起動すると、彼は彼のデバイスの音量を変更した場合、彼が実際に「リンガー」ボリュームを変更し、メインメニューです。他のビュー(サウンドがある場所)に進むと、デバイスの音量を変更すると、は音量ではなく、の音量に変更されます。

アプリボリュームを毎回、アプリの始めから、AVAudioPlayerのインスタンスを作成する前に変更する方法はありますか? (これは誤解されています。つまり、音量ボタンを押すたびにOSが画面上にオーバーレイするということです。ホーム画面にいる場合は、「リンガー」を変更します。アプリの音量を変更してください)。

PS: 私のメインメニューでAudioSessionを初期化しても、違いはありません。 唯一のハック私は実際に私のメインメニューでAVAudioPlayerのインスタンスを作成し、 "preparedToPlay"に設定することが判明しました。しかし、私はむしろ他人がやっていることを聞いています(適切な解決策)。

答えて

0

この目的で使用されるMPVolumeViewというクラスがあります。ここをクリックgood link explaining the use of MPVolumeView

ビューにMPVolumeViewを追加すると、ロッカーボタンを使って音量を変更するとiPodのような音量スライダーが作成されます。この値は、AVAudioPlayerクラスによって自動的に使用されます。一部のオーディオが再生されている唯一のアプリケーションの音量を変更するデフォルトでは、スライダーなし

ロッカーボタンをボリュームを追跡するために

。この問題の回避策があります。this SO threadでは、いくつかの回避策について説明しています。

+0

私の質問は誤解されていると思います...私はおそらくそれを言い換える必要があります...私はボリュームを変更するスライダーをユーザーに与えたくありません。しかし、彼らが(デバイスの側面にあるボタンから)音量を変更するとき、私はそれが "リンガーボリューム"の代わりに "アプリケーションボリューム"を変更することを欲しい。 – Dimitris

+0

編集された回答を参照してください – lostInTransit

+0

ああ、大丈夫です。だから、私のハック*は実際に他の人がやっていることです... ありがとう。 – Dimitris

1

アプリケーションが現在オーディオを再生していない場合、音量ボタンはリンガー音量に影響します。いくつかのアプリケーションは、サイレントオーディオファイルを再生することでこれを回避します。実際に有用なものを実際に演奏していないときにアプリの音量を調整していますが、これをどうやって慎重に検討しますか?

AudioSessionのプロパティを変更することで、あなたが望むことができるはずですが、どうすればいいか分かりません。

+0

それは私が思ったものですが、私のアプリケーションでは、デフォルトのAudioSessionが最高のものだと思うので、何も変更しません。 最初の段落については、現在再生されていなくてもオーディオの音量を変更できることは非常に便利です(短いビープ音を鳴らすアプリを想像してください。ビープ音を鳴らして、彼らのボリューム...)。 – Dimitris

関連する問題