2012-10-26 9 views
5

में खेले गए संगीत की शक्ति प्राप्त करना मैं अपने आवेदन में आईपॉड/संगीत ऐप के माध्यम से खेली गई ध्वनि की शक्ति कैसे प्राप्त कर रहा हूं।आईफोन

जो कुछ भी मैं ढूंढने में सक्षम था, वह माइक्रोफोन के माध्यम से ध्वनि की शक्ति प्राप्त करने के बारे में था, या AVAudioPlayer के माध्यम से अपने स्वयं के ऐप में ध्वनि बजाना था और फिर औसत PowerForChannel: विधि का उपयोग करना था। मैंने यह भी खोजा कि MPMusicPlayerController मेरी मदद कर सकता है, लेकिन मैं जो चाहता हूं उससे निकटतम मुझे "अब प्लेइंग इटिम" का MPMediaItem है, और ऐसा लगता है कि मैं वर्तमान में खेले गए गीत से कई सूचनाओं तक पहुंच सकता हूं लेकिन वर्तमान शक्ति की तरह कुछ भी नहीं ।

क्या मेरे ऐप में संगीत ऐप से खेले गए गीत की वर्तमान शक्ति को प्राप्त करने का कोई तरीका है?

उत्तर

0

लार्मे का जवाब आईओएस 7 (volumeMPMusicPlayer और iPodMusicPlayer विधि) के साथ बहिष्कृत किया गया है। (हालांकि, जब मैं मेरा करते हैं, कुछ अजीब कारण के लिए, यह हमेशा -120 dB रिटर्न) के बजाय इस प्रयास करें वर्तमान गीत के साथ एक AVAudioPlayer उदाहरण पाने के लिए:

AVAudioPlayer *somePlayer = [AVAudioPlayer new]; 
__autoreleasing NSError* error; 
somePlayer = [somePlayer initWithContentsOfURL:[[[MPMusicPlayerController systemMusicPlayer] nowPlayingItem] valueForProperty:MPMediaItemPropertyAssetURL] error:&error]; 
somePlayer.currentTime = [[MPMusicPlayerController systemMusicPlayer] currentPlaybackTime]; 
somePlayer.volume = 0; 
[somePlayer play]; 
[somePlayer setMeteringEnabled:YES]; 
[somePlayer updateMeters]; 
NSMutableArray* amps = [NSMutableArray array]; 
if (error != nil) { 
    NSLog(@"error: %@", error.debugDescription); 
} 
for (int i = 0; i < somePlayer.numberOfChannels; i++) { 
    [amps addObject:@(([somePlayer peakPowerForChannel:i] + 160.0)/160.0)]; 
    NSLog(@"Amplitude: %f db for channel %i", [somePlayer averagePowerForChannel:i], i); 
} 
float amp = 0; 
for (NSNumber *x in amps) { 
    amp += [x floatValue]; 
} 
amp /= amps.count; 
NSLog(@"amp: %f", amp); 
+0

को हटा दिया गया है, मैं अब इस परियोजना पर कई वर्षों से काम नहीं कर रहा हूं इसलिए मुझे यकीन नहीं है कि आपका उत्तर काम करता है (लार्मे का जवाब मिलता है वॉल्यूम, और एलेक्स चाफफी ने टिप्पणी नहीं की), लेकिन ऐसा लगता है कि मैं उस समय की तरह की चीजें देख रहा था, इसलिए मैं इसे स्वीकार करूँगा। आशा है कि आप इस उत्तर के साथ किसी और की मदद करेंगे :) – GawenBerger

0

इस प्रयास करें: myPlayer = [MPMusicPlayerController iPodMusicPlayer];

आप myPlayer.volume साथ मात्रा प्राप्त कर सकते हैं। यह एक फ्लोट है। एक कदम 1/16 है।

+1

मात्रा नहीं शक्ति है यही कारण है कि। पावर पल-पल स्तर है, जो चीज आप डेसिबल मीटर पर देखेंगे। (यदि शक्ति 0 है, तो कोई आवाज नहीं आती है, इससे कोई फर्क नहीं पड़ता कि वॉल्यूम क्या है।) – AlexChaffee

+0

वॉल्यूम अब –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^