CocoaSoundCloudAPI 1.0.2

CocoaSoundCloudAPI 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可 Apache 2
发布最后发布2014年12月

维护者:



  • Ullrich Schäfer,Robert Böhnke,Tobias Kräntzer和Rob Siwek

Cocoa的SoundCloud API

因此,您想在iOS应用程序中共享您的 tracks 到SoundCloud? 通过这个项目,您只需要几行代码就可以做到这一点。SoundCloud API支持从iOS版本4.0和MacOS X从Leopard(10.6)开始的版本。它使用SoundCloud的OAuth2 API,因此还包括NXOAuth2Client项目。

担心独自旅行?不用担心,有很多地方您可以找到帮助

请注意,所有这些都在积极开发中,事物可能会不时改变。请经常更新您的框架,并考虑到这一点。

我们记录了不同版本的更改。如果您使用过旧版本,请阅读。

本指南假设以下几点

  • 您正在使用Xcode 4
  • 您正在使用Git。

演示

Cocoa SoundCloud API来自TobiasVimeo

设置

我们以一个新的iOS项目为例。将其集成到现有项目或桌面项目中的方法应该类似。

在终端中

  1. 转到您的项目目录。

  2. 添加所需的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
    

在Xcode中

  1. 创建包含上述所有子模块的工作空间。

  2. 为了能够找到头文件,您仍然需要根据您的设置将../**./**$PROJECT_DIR/**添加到主项目的头文件搜索路径中。

  3. 现在,目标需要了解它应该构建和链接到的新库。请注意以下依赖项

    仅限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
    

    应该将相关的库添加为您目标的依赖项,并链接起来。在项目中,选择目标,然后在构建阶段将库和框架添加到目标依赖项链接二进制库部分。

  4. 下一步是确保链接器能够找到所需的所有内容:因此,请转到项目的“构建设置”,并在“其他链接器标志”(如果尚未存在)中添加以下内容:

    -ObjC
    

注意,由于之前存在链接器错误,为了防止链接器移除 Objective-C 类别,标志 -all_load 也很有必要。如果使用最新 SDK,则此要求不再有效。然而,如果您看到 станут исключения **“Unrecognized Selector”**,则说明您没有使用最新的开发者工具,应考虑升级或者添加 -all_load 标志。

  1. 在 iOS 上,我们还需要一些图形:请将 SoundCloud.bundleCocoaSoundCloudUI/ 目录移动到您的资源目录。

万岁,完成!恭喜!一切设置完成,您现在可以开始使用了。

用法

基础知识

您只需 #import "SCUI.h" 来包含 UI 头文件(或桌面上的 #import <SoundCloudAPI/SCAPI.h>)。

配置您的应用程序

为了配置您的应用程序,您必须设置您的应用程序的 Client IDClient SecretRedirect URL。最佳做法是在应用程序代理的 initialize 类方法中这样做。

+ (void)initialize;
{
    [SCSoundCloud  setClientID:@"<Client ID>"
                        secret:@"<Client Secret>"
                   redirectURL:[NSURL URLWithString:@"<Redirect URL>"]];
}

您可以从您注册应用程序的 SoundCloud 页面 获取您的应用程序的 Client IDClient Secret。在那里,您应该使用应用程序的名称和 Redirect URL 注册应用程序。该 Redirect URL 应符合由您的应用程序处理的协议。有关如何设置应用程序中的协议,请参阅 此页面。对好奇的人来说:在包装器中,我们使用 Redirect URL 而不是 Redirect URI,因为底层类型为 NSURL

使用 Share UI(仅限 iOS)

要共享曲目,只需创建一个包含您想共享的文件 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

使用 API

如果您想为共享曲目提供自己的 UI 或者想要使用 SoundCloud API 进行其他用途,请参阅 通用用法共享

好了!