2016-05-11 5 views
1

私はこの問題を訴えていましたが、何も役に立たない、あるいは最新のものが出てこなかった。あなたがMP3ファイルを選んで(iTunesから)どうすればいいのか知りたいのですが、iOS(iPhone & ipad app)の自分のサーバーにコンテンツをアップロードすることができます。iOSからサーバーにMP3ファイルをアップロードできますか?

私のクライアントの1人がこれを実行することができるかどうか尋ねてきましたが、答えはまだ見つかりませんでした。

ありがとうございます!

+0

[http://stackoverflow.com/questions/11862273/how-to-upload-a-mp3-file-upto-5-mb-size-on-webserver-in-iphone] –

+0

自分のアプリケーション内のMusic.appからの音楽の「ファイルコンテンツ」。 'AVAssetExportSession'(またはそのようなもの、AudioVideo.frameworkを見てください)を使わなければならないかもしれませんし、大きなファイルをサーバに送ることもできます。 2つの場合(別々に)SOにサンプル/関連する質問があります。 – Larme

答えて

1

短い答えはYESです。

ここに私のための解決策があります。しかし、third party libraryを使用する必要があります。これはあなたがする必要があります:

  1. NSDocumentsディレクトリまたは一時ディレクトリのいずれかの一時フォルダを作成します。
  2. MPMediaQueryを使用して音楽ファイルを読み込みます。
  3. MPMediaQueryから取得するオブジェクトはMPMediaItemです。これで、メディアアイテムのアセットURLを取得できます。

コード:

NSString *assetURL = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL]; 

資産URL

NSString *extension = [TSLibraryImport extensionForAssetURL:assetURL]; 

との拡張子を取得する(これは、mp3の音楽データがインポートされる場所になります)場所のURLを設定します。

NSString *locationURL = [[NSURL fileURLWithPath:[path stringByAppendingPathComponent:musicTitleYouWant]] URLByAppendingPathExtension:extension]; 

これで、以前設定したディレクトリからmp3の内容をインポートできます。

TSLibraryImport *libraryImport = [[TSLibraryImport alloc] init]; 

[libraryImport importAsset:assetURL toURL:locationURL completionBlock:^(TSLibraryImport *libraryImport) 
{ 
    if(libraryImport.status == AVAssetExportSessionStatusCompleted) 
    { 
     //Once complete the file will be store on the location URL you set earlier. Now you can get the file from that location and convert it to NSData and send it to the server. There are plenty of ways to do that. 
    } 

    else 
    { 
     //Here means import failed. :(
    } 
}]; 

これが役に立ちます。 :)

関連する問題