ios - 在应用程序中存储短音频文件/流

标签 ios parse-platform

我计划制作一个应用程序,利用 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 是否允许您在您的应用中销售音乐。

关于ios - 在应用程序中存储短音频文件/流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781604/

相关文章:

ios - 未调用 BLE 外设委托(delegate)

ios - 从初始化错误返回之前,未在所有路径上调用 Super.init

ios - 如何以编程方式设置 ScrollView 高度

iphone - UIWebView:跟踪屏幕更新(脏区)

javascript - parse.com javascript从单个字符串显示一系列扑克牌图像

ios - 解析检查是否为 nil

ios - 检查服务器上的 sqlite user_version 以更新 iOS 应用程序

ios - 如何在解析时检查云代码生成的错误

ios - 我忘记了 APNs 证书,现在怎么办? (推送通知不起作用)

swift - 无法将类型 'NSData!' 的值分配给类型 'AnyObject?' 的值