如何将ios音频上传到服务器?

时间:2013-03-01 12:23:10

标签: iphone ios audio mpmediapickercontroller

我试图将音频文件上传到服务器。我在列表音频中使用MPMedia Picker视图,当我要选择我将上传到服务器(http)的音频时,我该怎么做呢。任何人都可以提供任何示例教程或示例代码。

我尝试过以下代码。

- (IBAction)openMediaPicker:(id)sender {
    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
    mediaPicker.delegate = self;
    mediaPicker.allowsPickingMultipleItems = YES; // this is the default   
    [self presentModalViewController:mediaPicker animated:YES];
    [mediaPicker release];
}

- (IBAction)volumeSliderChanged:(id)sender {
    self.musicPlayer.volume = self.volumeSlider.value;
}

#pragma mark MPMediaPickerController delegate methods

- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
    // We need to dismiss the picker
    [self dismissModalViewControllerAnimated:YES];

    // Assign the selected item(s) to the music player and start playback.
    [self.musicPlayer stop];
    [self.musicPlayer setQueueWithItemCollection:mediaItemCollection];
    [self.musicPlayer play];
}

- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker {
    // User did not select anything
    // We need to dismiss the picker
    [self dismissModalViewControllerAnimated:YES];
}

1 个答案:

答案 0 :(得分:0)

从mediaItemCollection.items数组的某个索引初始化MPMediaItem对象:

MPMediaItem * anItem =(MPMediaItem *)[mediaItemCollection.items objectAtIndex:row];

然后调用-valueForProperty:方法:

NSURL * assetURL = [anItem valueForProperty:MPMediaItemPropertyAssetURL];

您可以从此处描述的MPMediaItem获取其他属性:http://developer.apple.com/library/ios/#DOCUMENTATION/MediaPlayer/Reference/MPMediaItem_ClassReference/Reference/Reference.html

查看“常规媒体项属性键”

希望这有帮助!噬细胞

使用ASIHTTPRequest上传如下所示的音频文件

NSURL *audiourl = [NSURL URLWithString:@"Your Url"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:audiourl];
NSData *postData = [NSData dataWithContentsOfURL:SoundPath];
//SoundPath is your audio url path of NSDocumentDirectory.
[request addData:postData withFileName:@"myAudio.caf" andContentType:@"audio/caf" forKey:@"company_audio"];
[request setDelegate:self];
[request startSynchronous];

这样您就可以轻松地在服务器上传音频文件。