मैं वर्तमान में एक फोन स्थानीय आइपॉड पुस्तकालय AVPlayer बजाय MPMusicPlayerController का उपयोग कर आवेदन नियंत्रक का उपयोग करने से संगीत खेलने के लिए कोशिश कर रहा हूँ से खेलने के साथ AVMutableAudioMixInputParameters पर काम नहीं कर setVolume।फोन स्थानीय आइपॉड पुस्तकालय
मैं इसे स्थानीय आईपॉड लिब का उपयोग करके और एमपीएमडियाक्वायर से ट्रैक का चयन कर सकता हूं, लेकिन जब मैं AVMutableAudioMixInputParameters का उपयोग करके निम्न स्तर पर ऑडियो शुरू करने का प्रयास करता हूं, तो यह वॉल्यूम को कम नहीं करता है।
कारण मैं एवीप्लेयर का उपयोग कर रहा हूं और MPMusicPlayerController नहीं है कि मैं पृष्ठभूमि में कुछ अन्य ऑडियो चला रहा हूं और MPMusicPlayerController AVPlayer का उपयोग कर मौजूदा ऑडियो फ़ाइल के रूप में खेलने में विफल रहता है हार्डवेयर को हॉगिंग कर रहा है। कोड मैं इस समय है:
// just blindly select all music for now.
MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSArray *itemsFromGenericQuery = [everything items];
MPMediaItem *song;
NSMutableArray *array = [[NSMutableArray alloc] init];
for (song in itemsFromGenericQuery)
{
[array addObject:song];
}
तो इस बिंदु सरणी में मेरी lib से पटरियों की एक सरणी है।
अब एक हड़पने और का उपयोग कर इसे खेलने के लिए AVPlayer:
// grab the first song off the array
MPMediaItem *song = [array objectAtIndex:0];
NSURL *assetURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:assetURL options:nil];
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
AVAssetTrack *track = [audioTracks objectAtIndex:0];
NSMutableArray *allAudioParams = [NSMutableArray array];
AVMutableAudioMixInputParameters *audioInputParams =
[AVMutableAudioMixInputParameters audioMixInputParameters];
// this is the key line - turn the volume down.
[audioInputParams setVolume:0.3 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];
[playerItem seekToTime:CMTimeMake(30, 1)];
[self setLocalPlayer:[AVPlayer playerWithPlayerItem:playerItem]];
[localPlayer play];
मैं पुष्टि कर सकता है कि मात्रा AVPlayer का उपयोग करते समय काम करता है का समायोजन एक URL (स्ट्रीमिंग) से फाइल खेलने के लिए; स्थानीय पुस्तकालय से खेलते समय नहीं।
मुझे लगता है मैं किसी भी स्मृति प्रबंधन यहाँ नहीं किया है; बस इसे पहले काम करने की कोशिश कर रहा है। इसके अलावा, स्थानीय खिलाड़ी एक संपत्ति है इसलिए कोई स्पष्ट बरकरार नहीं है।
किसी भी मदद की सराहना की जाएगी!
धन्यवाद।
मैं एक iPhone डेवलपर नहीं कर रहा हूँ, लेकिन प्रतिसाद नहीं उस समारोह का नाम नहीं है ... थोड़ा लंबा? – aviraldg
हे, यह थोड़ा है - लेकिन इसकी एक stdlib lib/समारोह। –
क्या आपने समाधान ढूंढने का प्रबंधन किया था ..? –