오디오 및 mp3 파일이있는 비디오가 있습니다. mp3를 재생하면서 음소거 (오디오 끄기)로 비디오를 재생하고 싶습니다. 비디오를 재생하려면 MPMoviePlayerController
을 사용하고 mp3를 재생하려면 AVAudioPlayer
을 사용하고 있습니다. 그것을 할 수있는 방법이 있습니까?AVAudioPlayer를 사용하여 mp3를 재생하는 동안 비디오를 음소거하는 방법
1
A
답변
0
나는 내 자신의 질문에 대답하기로 결심했다. @nickbona 대답은 괜찮 았지만 간단한 예제 코드는 없다. 그래서 해결책은 MPMoviePlayerController 대신 AVPlayer를 사용하는 것입니다.
//init player
AVAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yourfile" ofType:@"mp4"]] options:nil];
AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];
AVPlayer *myPlayerController = [AVPlayer playerWithPlayerItem:anItem];
//disable audio (this is the version when you have more than one video in the playlist: i write this version so it should be more useful)
NSArray *playerTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
NSMutableArray *playerParams = [NSMutableArray array];
for (AVAssetTrack *track in playerTracks) {
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:0.0 atTime:kCMTimeZero];
[audioInputParams setTrackID:[track trackID]];
[playerParams addObject:audioInputParams];
}
AVMutableAudioMix *muteAudioMix = [AVMutableAudioMix audioMix];
[muteAudioMix setInputParameters:playerParams];
[[myPlayerController currentItem] setAudioMix:muteAudioMix];
은 도움이 될 수 있습니다 희망 : 다른 사람이 그것을 필요로 할 경우
그래서 나는 여기 쉽게 소스 코드 예제입니다.
0
0
목표를 달성하기 위해 실제로 MPMusicPlayerController
을 사용할 수 있습니다. 그것은 무엇을
- (void)muteVidepPlayer:(BOOL)muteFlag
{
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
if (muteFlag)
{
self.lastVolume = musicPlayer.volume;
[musicPlayer setVolume:0.0f];
}
else
{
[musicPlayer setVolume:self.lastVolume];
}
}
, 그것은 볼륨을 조정할 수 있습니다 MPMusicPlayerController
의 인스턴스를 사용합니다. 너무 당황하지 마라. 이것은 당신의 MPMoviePlayerController
인스턴스의 볼륨을 효과적으로 조정할 것이다. 이것은 MPMoviePlayerController
과 MPMusicPlayerController가 둘 다 (기본적으로) 앱 오디오 세션을 사용하기 때문에 작동합니다.
볼륨을 이전 설정으로 재설정 할 수 있도록이 방법은 해당 값을 재생 컨트롤러/뷰 컨트롤러/기타의 float
(self.lastVolume
) 유형의 인스턴스 변수에 저장하려고 시도합니다.
관련 문제
- 1. 재생하는 동안 .swf 비디오를 음소거하는 방법은 무엇입니까?
- 2. iPod이 여전히 오디오를 재생하는 동안 iOS에서 비디오를 음소거하는 방법은 무엇입니까?
- 3. storyboard를 사용하여 AVAudioPlayer를 재생하는 방법
- 4. AVAudioPlayer를 사용하여 M4P를 재생하는 방법
- 5. 프로그래밍 방식으로 비디오를 음소거하는 방법
- 6. 안드로이드는 videoview를 사용하여 비디오를 재생하는 동안 전화를받습니다.
- 7. 백그라운드에서 비디오를 재생하는 방법?
- 8. Canvas를 사용하여 비디오를 재생하는 방법
- 9. 24 시간 동안 비디오를 재생하는 방법 웹
- 10. 반복 된 배경 비디오를 음소거하는 방법
- 11. gridview에서 비디오를 재생하는 방법?
- 12. 여러 비디오를 재생하는 방법?
- 13. AVAudioPlayer를 사용하여 백그라운드에서 음악을 재생하는 방법은 무엇입니까?
- 14. C# Windows Form의 백그라운드에서 프로세스를 실행하는 동안 mp3를 재생하는 방법
- 15. URL에서 비디오를 재생하는 방법?
- 16. 동시에 여러 ogg 또는 mp3를 재생하는 방법 ..?
- 17. 표면보기로 비디오를 재생하는 방법
- 18. webview에서 비디오를 재생하는 방법
- 19. viewflipper에서 비디오를 재생하는 방법
- 20. sdcard에서 비디오를 재생하는 방법
- 21. android에서 비디오를 재생하는 방법?
- 22. NSData로 비디오를 재생하는 방법?
- 23. bstream에서 비디오를 재생하는 방법 gstreamer에서
- 24. 특정 위치에서 비디오를 재생하는 방법?
- 25. libvlc를 사용하여 mp3를 재생하는 간단한 C 프로그램
- 26. iPhone의 무음 모드에서 AVAudioPlayer를 사용하여 사운드를 재생하는 방법
- 27. 싱글 톤 객체를 사용하여 두 개의 AVAudioPlayer를 재생하는 방법 ...?
- 28. iPhone/iPad에서 AVAudioPlayer를 사용하여 재생 목록을 재생하는 방법
- 29. 응용 프로그램이 AVAudioPlayer를 사용하여 백그라운드로 들어갈 때 오디오를 재생하는 방법
- 30. Qt4에서 YUV 비디오를 재생하는 방법?
@nickbona : 감사합니다. MPMoviePlayerController를 AVPlayer로 교체하려고합니다. AVPlayer가 재생중인 현재 비디오 파일 이름을 찾는 방법이 있습니까? 나는 그것을 발견 할 수 없다. – Caio
(비디오는 로컬입니다 [앱 번들에 포함] : 메타 데이터 사용을 피하고 싶습니다. [비디오에서 가능할 수 있도록] – Caio