SoundCloudでプレイリストを作成するウェブサイトを手に入れました。今度はiPhone用のアプリを作って、ユーザーもそこで曲を聴けるようにしたいと思います。
http://developers.soundcloud.com/docs/api/ios-quickstart リンクの例では、ユーザーはサインインしてリッスンして共有する必要がありますが、ユーザーだけがリッスンするようにします。サインインする必要がないようにする方法はありますか?
SoundCloudでプレイリストを作成するウェブサイトを手に入れました。今度はiPhone用のアプリを作って、ユーザーもそこで曲を聴けるようにしたいと思います。
http://developers.soundcloud.com/docs/api/ios-quickstart リンクの例では、ユーザーはサインインしてリッスンして共有する必要がありますが、ユーザーだけがリッスンするようにします。サインインする必要がないようにする方法はありますか?
プレイリストを JSON で出力するページを作成し、xcode で、トラック ディクショナリの JSON をダウンロードし、ダウンロードしたコンテンツを AVPlayer (リスト全体を再生する場合は AVQueuePlayer) を使用して再生するクラスを作成します。
ここにいくつかの抽象的なコードがあります:
playlistDownloader.m
- (void)downloadPlaylist{
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(concurrentQueue, ^{
NSURL *url = [NSURL URLWithString:@"http://www.yourwebsite.com/playlist.json?id=1"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
id trackData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
if (!error) {
tempTrackArray = trackData;
} else {
NSLog(@"Playlist wasn't able to download");
}
});
}
tempTrackArray は、クラスで宣言されたプロパティになります。
次に、プレーヤーで次のようにします。
audioPlayer.m
- (void)instanciateAudioPlayer
{
NSDictionary *trackDictionary = [playListDownloader.tempTrackArray objectAtIndex:0];
NSString *urlString = [trackDictionary objectForKey:@"stream_url"];
AVAsset *asset = [AVAsset assetWithURL:streamURL];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
[avPlayer initWithPlayerItem:playerItem];
}
これは非常に大まかなコードですが、やろうとしていることの一般的な要点です。あなたを正しい方向に導くはずです。