में एक HTTP लाइव स्ट्रीम म्यूट करें मैं अब 48 घंटे के लिए इस समस्या को हल करने का प्रयास कर रहा हूं और कुछ भी नहीं आया है। मेरे पास 2 एवीप्लेयर ऑब्जेक्ट्स अलग-अलग http लाइव स्ट्रीम खेल रहे हैं। जाहिर है, मैं नहीं चाहता कि वे दोनों एक ही समय में ऑडियो खेल रहे हों, इसलिए मुझे वीडियो में से किसी एक को म्यूट करने का तरीका चाहिए।एक AVPlayer
एप्पल suggests this AVPlayer में खेल रहे एक ऑडियो ट्रैक म्यूट करने के लिए ...
NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVPlayerItemTrack *track in [_playerItem tracks]) {
if ([track.assetTrack.mediaType isEqualToString:AVMediaTypeAudio]) {
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:0.0 atTime:CMTimeMakeWithSeconds(0,1)];
[audioInputParams setTrackID:[track.assetTrack trackID]];
[allAudioParams addObject:audioInputParams];
// Added to what Apple Suggested
[track setEnabled:NO];
}
}
AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
[_playerItem setAudioMix:audioZeroMix];
जब यह काम नहीं किया (कई पुनरावृत्तियों के बाद), मैं AVPlayerItemTrack के सक्षम प्रॉपर्टी मिल गया है और नहीं करने के लिए सेट करते हैं कि कोशिश की। कुछ भी नहीं। यह कुछ भी करने के रूप में भी पंजीकृत नहीं होता है क्योंकि जब मैं एक NSLog (@ "% x", track.enabled) का प्रयास करता हूं, तो यह अभी भी 1.
मुझे नुकसान हो रहा है और मैं नहीं सोच सकता दस्तावेज़ीकरण का एक और टुकड़ा मैं एक अच्छा जवाब पाने के लिए पढ़ और फिर से पढ़ सकता हूं। अगर वहां कोई भी मदद कर सकता है, तो यह शानदार होगा।
* अद्यतन: मैं एप्पल के एक पकड़ लिया और AVFoundation टीम के अनुसार, यह म्यूट या एक एचएलएस वीडियो की एक ट्रैक को अक्षम करना असंभव है। मैं, व्यक्तिगत रूप से, ऐसा महसूस करता हूं कि यह एक बग है इसलिए मैंने bug report सबमिट किया (आपको ऐप्पल को यह बताने के लिए ऐसा करना चाहिए कि यह एक समस्या है)। आप भी अपने प्रतिक्रिया पृष्ठ के माध्यम से feature enhancement request को आजमाएं और सबमिट कर सकते हैं।
उत्तर के लिए धन्यवाद, यह उन समस्याओं में से एक के लिए मेरे लिए एक रास्ता खोल दिया जो मैं हल करने की कोशिश कर रहा था। मैं ओपनएएल के साथ एक ही काम करने की कोशिश कर रहा हूं लेकिन ऐसा करने का सीधा आगे नहीं मिला।मुझे पता है कि आप वॉल्यूम को alSourcef (स्रोत आईडी, AL_GAIN, वॉल्यूम) के माध्यम से घटा सकते हैं; लेकिन यह नहीं पता कि इसे कैसे म्यूट करें, क्या इसका कोई त्वरित समाधान है? – chathuram