1

現在、私のアプリでは、内蔵マイクからのオーディオ サンプルに対して FFT 分析を行っています。スピーカーを使用してiPodライブラリから曲を再生し、マイクが音をキャプチャし、FFTを計算できます。私はこの解決策に満足していません。オーディオ ファイル (iPod ライブラリ) から直接サンプルを取得し、FFT を計算したいと考えています。iPodライブラリから曲を分析できるアプリをAppStoreで見たので、これが可能であることを知っています。どうやってやるの?

4

3 に答える 3

-3

試してみてください。

#import <MediaPlayer/MediaPlayer.h>
#import <CoreAudio/CoreAudioTypes.h>
@interface ViewController : UIViewController {
MPMusicPlayerController *myPlayer;
}

.m

- (void)viewDidLoad {
[super viewDidLoad];

myPlayer = [MPMusicPlayerController applicationMusicPlayer];
[myPlayer beginGeneratingPlaybackNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemUpdated) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification object:nil];
// Do any additional setup after loading the view, typically from a nib.
}

次に、iPodライブラリにアクセスできます[MPMediaQuery songsQuery]

各曲を解析するに[myPlayer nowPlayingItem]は、次のコードを試してください。クエリ内の各項目は次のとおりです。

NSString *artist = [[myPlayer nowPlayingItem] valueForKey:MPMediaItemPropertyArtist];
NSString *title = [[myPlayer nowPlayingItem] valueForKey:MPMediaItemPropertyTitle];
NSString *genre = [[myPlayer nowPlayingItem] valueForKey:MPMediaItemPropertyGenre];
NSString *duration = [[myPlayer nowPlayingItem] valueForKey:MPMediaItemPropertyPlaybackDuration];
int minutes = floor([duration floatValue]/60);
int seconds = round([duration floatValue] - minutes * 60);
NSLog(@"%@ - %@ (%i:%02d) Genre:%@",artist,title, minutes,seconds,genre);
于 2013-06-07T11:02:15.143 に答える