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

Posted

技术标签:

【中文标题】如何将ios音频上传到服务器?【英文标题】:How to upload the ios audio to server? 【发布时间】:2013-03-01 12:23:10 【问题描述】:

我已尝试将音频文件上传到服务器。而且我在列表音频中使用了 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];

【问题讨论】:

您必须添加更多细节才能获得好的答案。您在服务器端或客户端有问题吗?您的服务器端期望什么?你知道如何处理音频文件吗?你试过什么?... 我不知道你能解释一下吗?还有任何示例代码。 请看一下,this 可以帮到你 您好,我已经完成了图像上传。然后我尝试上传音频文件但不工作。原因音频文件路径不正确,如何获取音频路径并解析到服务器 url。 【参考方案1】:

从 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];

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

【讨论】:

嗨,如何获取我的音频文件名和类型。如何解析我的网址。 请告诉我你的问题解决与否 MPMediaItem *anItem = (MPMediaItem *)[mediaItemCollection.items objectAtIndex: row];这在这里使用 - (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection 我是对的 .row 显示错误 嗨,我得到了这个路径 nsurl *asserturl:assetURL ipod-library://item/item.mp3?id=-1116930734541307400

以上是关于如何将ios音频上传到服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在给定 blob url 的情况下将大型音频文件上传到 django 服务器?

将音频文件上传到服务器c#

如何将图像、pdf、音频、视频和任何文件系统从 iphone 本地内存上传到服务器(API)

iOS:如何将音频数据从客户端流式传输到服务器?

IOS实时录制音频并分割成文件

无法将音频上传到服务器