2013-08-12 2 views
-1

문서 디렉토리에서 비디오 파일을 재생하고 있지만 볼륨을 변경할 수 없습니다. 사실 뮤직 비디오 라이브러리에서 파일을 재생하고 볼륨을 변경할 수는 있지만 파일 공유 기능이있는 iTunes에서 미리 충전 된 비디오는 재생할 수 없습니다! 어떻게해야합니까?문서 디렉토리에서 비디오 파일을 재생하는 Avplayer - 볼륨 문제

AVMutableAudioMixInputParameters* audioInputParams2 = [AVMutableAudioMixInputParameters audioMixInputParameters]; 

CMTime currentTime = [videoItemDestra currentTime]; 
//se il video non c'è setta il tempo a zero, almeno non crasha 
if(CMTIME_IS_INVALID(currentTime)){ 
    currentTime = kCMTimeZero; 
} 


//se il pulsante muto è attivo non cambiare volume 
if(mutedx ==1){ 

    [audioInputParams2 setVolume:0 atTime:currentTime]; 

}else{ 

    [audioInputParams2 setVolume:(_volumeSliderAvplayer2.value/100) atTime:currentTime]; 

} 

[audioInputParams2 setTrackID:[videoDestra.tracks[0] trackID]]; 

NSMutableArray * allAudioParams2= [[NSMutableArray alloc]initWithObjects:audioInputParams2, nil]; 

AVMutableAudioMix * audioMix2 = [AVMutableAudioMix audioMix]; 

[audioMix2 setInputParameters:allAudioParams2]; 



AVMutableAudioMixInputParameters* audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters]; 

CMTime currentTime2 = [videoItemSinistra currentTime]; 

//se il video non c'è setta il tempo a zero, almeno non crasha 

if(CMTIME_IS_INVALID(currentTime2)){ 

    currentTime2 = kCMTimeZero; 

} 

//se il pulsante muto è attivo non cambiare volume 
if(mutesx ==1){ 

    [audioInputParams setVolume:0 atTime:currentTime2]; 

}else{ 

    [audioInputParams setVolume:(1-(_volumeSliderAvplayer2.value/100)) atTime:currentTime2]; 

} 
[audioInputParams setTrackID:[videoSinistra.tracks[0] trackID]]; 

NSMutableArray *allAudioParams= [[NSMutableArray alloc]initWithObjects:audioInputParams, nil]; 

AVMutableAudioMix* audioMix = [AVMutableAudioMix audioMix]; 
[audioMix setInputParameters:allAudioParams]; 

[videoItemSinistra setAudioMix:audioMix]; 
[videoItemDestra setAudioMix:audioMix2]; 

답변

0

내가 해결책을 발견 : 볼륨을 관리하기위한 비디오 사이의 크로스 페이더처럼 사용되는 슬라이더의

.

avplayeritem에서 트랙을로드하면 오디오, 비디오, 타임 코드 (있는 경우)의 "배열"로 나뉩니다. iTunes에서 비디오를로드하는 경우 파일에 비디오, 사운드, 시간 코드가 있고 audiomix에서 사운드 파트를로드해야합니다. 문서 라이브러리에서로드 된 파일에서 사운드 부분이 다른 위치에 있기 때문에 avplayeritem [0]을로드하는 것을 발견하기 전에 잘못되었습니다. 해결책 :

//load the sound part in an array 
audioTrackssx = [videoSinistra tracksWithMediaType:AVMediaTypeAudio]; 


//the sound part must be only one 
[audioInputParams setTrackID:[audioTrackssx[0] trackID]]; 
관련 문제