因此,您想在iOS应用程序中共享您的 tracks 到SoundCloud? 通过这个项目,您只需要几行代码就可以做到这一点。SoundCloud API支持从iOS版本4.0和MacOS X从Leopard(10.6)开始的版本。它使用SoundCloud的OAuth2 API,因此还包括NXOAuth2Client项目。
担心独自旅行?不用担心,有很多地方您可以找到帮助
请注意,所有这些都在积极开发中,事物可能会不时改变。请经常更新您的框架,并考虑到这一点。
我们记录了不同版本的更改。如果您使用过旧版本,请阅读。
本指南假设以下几点
Cocoa SoundCloud API来自Tobias在Vimeo。
我们以一个新的iOS项目为例。将其集成到现有项目或桌面项目中的方法应该类似。
转到您的项目目录。
添加所需的Git子模块
// For the API
git submodule add git://github.com/nxtbgthng/OAuth2Client.git
git submodule add git://github.com/soundcloud/CocoaSoundCloudAPI.git
// For the UI (iOS only)
git submodule add git://github.com/nxtbgthng/JSONKit.git
git submodule add git://github.com/nxtbgthng/OHAttributedLabel.git
git submodule add git://github.com/soundcloud/CocoaSoundCloudUI.git
创建包含上述所有子模块的工作空间。
为了能够找到头文件,您仍然需要根据您的设置将../**
、./**
或$PROJECT_DIR/**
添加到主项目的头文件搜索路径
中。
现在,目标需要了解它应该构建和链接到的新库。请注意以下依赖项
仅限iOS
libSoundCloudAPI.a
libOAuth2Client.a
libJSONKit.a
libOHAttributedLabel.a
libSoundCloudUI.a
仅限Mac OS X
SoundCloudAPI.framework
OAuth2Client.framework
iOS和Mac OS X
QuartzCore.framework
AddressBook.framework
AddressBookUI.framework
CoreLocation.framework
Security.framework
CoreGraphics.framework
CoreText.framework
应该将相关的库添加为您目标的依赖项,并链接起来。在项目中,选择目标,然后在构建阶段将库和框架添加到目标依赖项和链接二进制库部分。
下一步是确保链接器能够找到所需的所有内容:因此,请转到项目的“构建设置”,并在“其他链接器标志”(如果尚未存在)中添加以下内容:
-ObjC
注意,由于之前存在链接器错误,为了防止链接器移除 Objective-C 类别,标志 -all_load
也很有必要。如果使用最新 SDK,则此要求不再有效。然而,如果您看到 станут исключения **“Unrecognized Selector”**,则说明您没有使用最新的开发者工具,应考虑升级或者添加 -all_load
标志。
SoundCloud.bundle
从 CocoaSoundCloudUI/
目录移动到您的资源目录。万岁,完成!恭喜!一切设置完成,您现在可以开始使用了。
您只需 #import "SCUI.h"
来包含 UI 头文件(或桌面上的 #import <SoundCloudAPI/SCAPI.h>
)。
为了配置您的应用程序,您必须设置您的应用程序的 Client ID、Client Secret 和 Redirect URL。最佳做法是在应用程序代理的 initialize
类方法中这样做。
+ (void)initialize;
{
[SCSoundCloud setClientID:@"<Client ID>"
secret:@"<Client Secret>"
redirectURL:[NSURL URLWithString:@"<Redirect URL>"]];
}
您可以从您注册应用程序的 SoundCloud 页面 获取您的应用程序的 Client ID 和 Client Secret。在那里,您应该使用应用程序的名称和 Redirect URL 注册应用程序。该 Redirect URL 应符合由您的应用程序处理的协议。有关如何设置应用程序中的协议,请参阅 此页面。对好奇的人来说:在包装器中,我们使用 Redirect URL 而不是 Redirect URI,因为底层类型为 NSURL
。
要共享曲目,只需创建一个包含您想共享的文件 URL 的 SCShareViewController
并在当前视图控制器中呈现它。上传成功后,可以在完成处理程序中访问曲目信息。
- (void)upload;
{
NSURL *trackURL = // ... an URL to the audio file
SCShareViewController *shareViewController;
shareViewController = [SCShareViewController shareViewControllerWithFileURL:trackURL
completionHandler:^(NSDictionary *trackInfo, NSError *error){
if (SC_CANCELED(error)) {
NSLog(@"Canceled!");
} else if (error) {
NSLog(@"Ooops, something went wrong: %@", [error localizedDescription]);
} else {
// If you want to do something with the uploaded
// track this is the right place for that.
NSLog(@"Uploaded track: %@", trackInfo);
}
}];
// If your app is a registered foursquare app, you can set the client id and secret.
// The user will then see a place picker where a location can be selected.
// If you don't set them, the user sees a plain plain text filed for the place.
[shareViewController setFoursquareClientID:@"<foursquare client id>"
clientSecret:@"<foursquare client secret>"];
// We can preset the title ...
[shareViewController setTitle:@"Funny sounds"];
// ... and other options like the private flag.
[shareViewController setPrivate:NO];
// Now present the share view controller.
[self presentModalViewController:shareViewController animated:YES];
}
可选地,您可以预先设置 标题、封面图片、创建日期 以及表示曲目应公开还是私有的标志。有关详细信息,请查看 SCShareViewController.h
。
如果您想为共享曲目提供自己的 UI 或者想要使用 SoundCloud API 进行其他用途,请参阅 通用用法 或 共享。