Технические вопросы и ответы QA1716

Как я регулирую громкость аудио носителей для воспроизведения с AVPlayer на iOS?

Q: Как делают я регулировал громкость аудио носителей для воспроизведения с AVPlayer на iOS?

A: AVPlayer использует системный том (управляемый аппаратным переключателем объема) для воспроизведения носителей.  

Используйте MPVolumeView класс для подарить пользователю ползунок управляет в приложении для того, чтобы регулировать системную громкость аудиовыхода. Посмотрите Ссылку класса MPVolumeView для получения дополнительной информации.

На iOS 7 можно отключить звук воспроизведения аудио (локальный или переданный потоком) с AVPlayer muted свойство:

Перечисление 1  , Отключающее звук воспроизведения аудио для AVPlayer объект с помощью свойства с отключенным звуком.

#import <AVFoundation/AVFoundation.h>
 
AVPlayer *player = <#A properly configured AVPlayer object#>;
player.muted = YES; // mute the audio

На iOS 6 и ранее, можно отключить звук воспроизведения аудио с AVPlayer путем создания AVAudioMix с объемом сползают для регулирования громкости к 0 как показано в Перечислении 2:

Перечисление 2  , Отключающее звук воспроизведения аудио с AVPlayer путем создания AVAudioMix с нулевым скатом объема.

#import <AVFoundation/AVFoundation.h>
 
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[self myAssetURL] options:nil];
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
 
// Mute all the audio tracks
NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVAssetTrack *track in audioTracks) {
    AVMutableAudioMixInputParameters *audioInputParams =[AVMutableAudioMixInputParameters audioMixInputParameters];
    [audioInputParams setVolume:0.0 atTime:kCMTimeZero];
    [audioInputParams setTrackID:[track trackID]];
    [allAudioParams addObject:audioInputParams];
}
AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
 
// Create a player item
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
[playerItem setAudioMix:audioZeroMix]; // Mute the player item
 
// Create a new Player, and set the player to use the player item
// with the muted audio mix
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
 
// assign player object to an instance variable
self.mPlayer = player;
 
// play the muted audio
[mPlayer play];


История версии документа


ДатаПримечания
21.05.2014

Добавленная информация о AVPlayer отключила звук свойства для iOS 7

27.08.2010

Новый документ, демонстрирующий, как регулировать громкость аудио носителей для воспроизведения с AVPlayer на iOS