2

我计划制作一个利用 Parse.com 后端进行用户身份验证/帖子/关注者/等的应用程序。我希望用户能够将示例音乐文件上传到 Parse(或替代解决方案),然后能够流式传输或让其他人能够流式传输它。有人告诉我可以使用 PFFile 存储文件,但是就流式传输而言呢?

这是否也违反了 Apple 的规则,因为最终它将允许用户通过应用程序购买这些音乐文件,还是我必须使用某种 iTunes 帐户/文件?

我在这里先向您的帮助表示感谢

4

1 回答 1

7

在上传解析方面:

PFObject *testObject = [PFObject objectWithClassName:@"TestObject"];

//get the audio in NSData format
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"02 Interstellar Overdrive" ofType:@"m4a"];
NSData *audioData = [NSData dataWithContentsOfFile:filePath];

//create PFFile to store audio data
PFFile *audioFile = [PFFile fileWithName:@"02 Interstellar Overdrive.m4a" data:audioData];
testObject[@"audioFile"] = audioFile;

//save
[testObject saveInBackground];

在从 Parse 服务器流式传输方面,使用允许流式传输的 AVPlayer。如果您想在播放前先下载整首歌曲,您可以使用 AVAudioPlayer:

PFQuery *query = [PFQuery queryWithClassName:@"TestObject"];
[query whereKeyExists:@"audioFile"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error)
    {
        PFObject *testObject = [objects lastObject];
        PFFile *audioFile = testObject[@"audioFile"];
        NSString *filePath = [audioFile url];

        //play audiofile streaming
        self.avPlayer = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:filePath]];
        self.avPlayer.volume = 1.0f;
        [self.avPlayer play];

    } else {

        NSLog(@"error = %@", [error userInfo]);
    }
}];

无法谈论 Apple 是否会让您在您的应用中销售音乐。

于 2013-11-15T05:24:48.363 回答