2

の音量を設定する方法を尋ねる質問がたくさんありますが、iOS でプレーヤーの現在の音量を取得するにはどうすればよいですAVPlayerか?

たとえば、曲を現在のレベルからフェードアウトさせようとしています。ボリュームを別の場所に保存して参照することもできますが、AVPlayer から直接値を読み取ることをお勧めします。

4

3 に答える 3

7

AVPlayerには 1 つ以上のAVPlayerItemオブジェクトが含まれており、AVPlayer によって再生されるメディアのオーディオ レベルを取得および設定するには、これらのオブジェクトを使用します。AVPlayerItemのドキュメントにアクセスしてプロパティを確認し、少し異なる質問audioMixに対する私の回答も確認してください。


あなたのコメントに続いて、これは(私が思うに)メソッドからボリューム値を取得する- (BOOL)getVolumeRampForTime:(CMTime)time startVolume:(float *)startVolume endVolume:(float *)endVolume timeRange:(CMTimeRange *)timeRange方法です:

// Get your AVAudioMixInputParameters instance, here called audioMixInputParameters
// currentTime is the current playhead time of your media

float startVolume;
float endVolume;
CMTimeRange timeRange;

bool success = [audioMixInputParameters getVolumeRampForTime: currentTime
                                                 startVolume: &startVolume
                                                   endVolume: &endVolume
                                                   timeRange: &timeRange];

// startVolume and endVolume should now be set
NSLog(@"Start volume: %f | End volume: %f", startVolume, endVolume);
于 2012-08-23T14:53:39.570 に答える
0

AVPlayerOS X に関するApple のドキュメントによると、ボリューム プロパティがリストされていますが、iOS の同じクラスのドキュメントにはリストされていません。あなたのプロジェクトは、AVAudioPlayer代わりに使用することを許可しますか? これに、iOS 用の合成ボリューム プロパティがあり、設定/取得がはるかに簡単です。

于 2012-08-23T03:23:08.750 に答える
-1

AVPlayerクラスのvolumeプロパティを使用できます。これがAVPlayerクラスのリファレンスリンクです。それからの引用:

volume
プレーヤーの現在の音量を示します。

@property(nonatomic)float volume
ディスカッション
0.0は「すべてのオーディオを無音にする」ことを意味し、1.0は「現在のアイテムの最大音量で再生する」ことを意味します。

可用性
OSXv10.7以降で使用できます。


AVPlayer.hで 宣言

編集:

代わりに、システムボリュームを取得してみてください。このリンクは2つの方法を提供します。

于 2012-08-23T03:22:33.947 に答える