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