2012-09-19 7 views
0

AVPlayer를 사용하여 로컬 오디오 파일 및 오디오 스트림을 재생하고 있습니다.실제 장치에서 AVPlayer의 볼륨 정보

볼륨을 제외하고 실제 장치에서는 모두 잘 작동합니다. 볼륨이 매우 낮습니다. 심지어 장치 볼륨 최대를 설정합니다. 이지만 이어폰의 볼륨은 정상입니다. 나는 스피커의 볼륨이 이어폰의 볼륨이되는 방법을 추측한다.

그리고 시뮬레이터에서도 잘 작동합니다.

볼륨을 설정하기 위해 MPMusicPlayerController, AVMutableAudioMix를 시도했습니다. 하지만 아무 것도 작동하지 않습니다.

나는 완전히 혼란 스럽다. 도움 주셔서 감사합니다.

답변

0

당신은 AVPlayer를 미디어 재생 (하드웨어 볼륨 스위치로 제어) 시스템 볼륨을 사용 developer.Apple Technical Q&A QA1716

에서 솔루션을 얻을 수 있습니다.

사용 자세한 내용은 MPVolumeView Class Reference를 참조하십시오 시스템 오디오 출력 볼륨

를 설정하는 응용 프로그램에서 슬라이더 컨트롤을 사용자에게 제공 할 수있는 MPVolumeView 클래스입니다.

제로 볼륨 램프 함께 AVAudioMix을 만들어 AVPlayer를 오디오 재생을 소거

아래와 같이 0으로 음량 설정 볼륨 램프 함께 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]; 
+0

AVPlayer에는 볼륨 속성이 없습니다. AVAudioPlayer가 아닙니다. 내 오디오 파일의 볼륨이 낮지는 않지만 내 앱에만 표시됩니다. – icefox

+0

나는 나의 대답을 편집했다. 그것은 당신을 도울지도 모른다 –

+0

감사합니다. 문제가 발견되었습니다. AVAudioSession입니다. AVAudioSession 설정에 대한 모든 코드를 제거하면 볼륨이 정상이됩니다. 그러나 AVAudioSession을 설정하는 방법을 여전히 모르겠습니다. – icefox

관련 문제