你可以从developer.Apple Technical Q&A QA1716
AVPlayer使用媒体播放系统卷(由硬件音量开关控制)的解决方案。
使用MPVolumeView类应用程序中的滑块控件来呈现用户设置系统音频输出音量
见MPVolumeView Class Reference以获取更多信息。
可以通过用体积斜坡创建AVAudioMix到将音量设置为0静音与AVPlayer音频的播放如下所示
通过与零体积斜坡创建AVAudioMix静音与AVPlayer音频的再现。
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];
AVPlayer没有卷属性。这不是AVAudioPlayer。而我的音频文件的音量不低,它只出现在我的应用程序中。 – icefox
我编辑了我的答案..它可能会帮助你 –
谢谢。我发现了这个问题。它是AVAudioSession,如果我删除了关于我的AVAudioSession设置的所有代码,音量就会变得正常。但是我仍然不知道如何设置AVAudioSession。 – icefox