我计划制作一个利用 Parse.com 后端进行用户身份验证/帖子/关注者/等的应用程序。我希望用户能够将示例音乐文件上传到 Parse(或替代解决方案),然后能够流式传输或让其他人能够流式传输它。有人告诉我可以使用 PFFile 存储文件,但是就流式传输而言呢?
这是否也违反了 Apple 的规则,因为最终它将允许用户通过应用程序购买这些音乐文件,还是我必须使用某种 iTunes 帐户/文件?
我在这里先向您的帮助表示感谢
我计划制作一个利用 Parse.com 后端进行用户身份验证/帖子/关注者/等的应用程序。我希望用户能够将示例音乐文件上传到 Parse(或替代解决方案),然后能够流式传输或让其他人能够流式传输它。有人告诉我可以使用 PFFile 存储文件,但是就流式传输而言呢?
这是否也违反了 Apple 的规则,因为最终它将允许用户通过应用程序购买这些音乐文件,还是我必须使用某种 iTunes 帐户/文件?
我在这里先向您的帮助表示感谢
在上传解析方面:
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 是否会让您在您的应用中销售音乐。