我正在使用AVPlayer播放本地音频文件和音频流。
除了音量外,一切都在真实设备上正常工作。 音量非常低。即使我设置最大设备音量。 但是耳机的音量是正常的。 我猜一些扬声器的音量如何变成耳机音量。
它也适用于模拟器。
我已经尝试了MPMusicPlayerController,AVMutableAudioMix来设置音量。 但没有任何作用。
我完全糊涂了。 谢谢你的帮助。
答案 0 :(得分:0)
您可以从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];