0

選択した曲のタイトルを表示する必要があります。タイトルを取得します(音楽ライブラリで曲を再生する必要はありません)。私の質問は、選択した(エンコードされた)曲をPHPサーバーに送信したい..サーバーからテーブルビューで曲を表示して曲を再生するには...iTunes簡単にエンコードできるように、音楽ライブラリの正しいパスを見つけたいです。

func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems      mediaItemCollection: MPMediaItemCollection) {

    let documentsUrl =  NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!

    do {
        // Get the directory contents urls (including subfolders urls)
        let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL( documentsUrl, includingPropertiesForKeys: nil, options: [])

        let mp3Files = directoryContents.filter{ $0.pathExtension == "m4a" }
        let mp3FileNames = mp3Files.flatMap({$0.URLByDeletingPathExtension?.lastPathComponent})

    } catch let error as NSError {
    }
    let name = "/aFileName"
    var filePath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first
    print("\nfilePath: \(filePath)")

    filePath = filePath!.stringByAppendingString(name)
    print("\nfilePath: \(filePath)")

    var filePathURL = NSURL.fileURLWithPath(filePath!)
    print("\nfilePathURL: \(filePathURL)")


    let item: MPMediaItem = mediaItemCollection.items[0]
    print(item)
    exportFiles = (item.valueForProperty(MPMediaItemPropertyAssetURL) as? NSURL)!
    print(exportFiles)        
    // Export the ipod library as .m4a file to local directory for remote upload
    let exportSession = AVAssetExportSession(asset: AVAsset(URL: exportFiles), presetName: AVAssetExportPresetAppleM4A)
    print(exportFiles)

    exportSession?.shouldOptimizeForNetworkUse = true
    print(exportSession)

    playingMusictitle = item.valueForProperty(MPMediaItemPropertyTitle) as? String ?? "Now Playing..."
    print("\(exportFiles), title : \(title) ")
    let str = exportFiles.absoluteString
    let str2 = str!.stringByReplacingOccurrencesOfString("ipod-library://item/item", withString: "")
    print(str2)

    let arr = str2.componentsSeparatedByString("?")


    mimeType = mimeType1.stringByReplacingOccurrencesOfString("id=", withString: "")


    let path = item.valueForProperty(MPMediaItemPropertyLyrics) as? String ?? ""
    print(path)


    exportSession?.outputFileType = AVFileTypeAppleM4A
    let documentsDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]

    let format = NSDateFormatter()
    format.dateFormat="yyyy-MM-dd-HH-mm-ss"
    audioname = "\(playingMusictitle)-\(format.stringFromDate(NSDate())).m4a"
    print(audioname)

    let documentsDirectoryy = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
    self.soundFileURL = documentsDirectoryy.URLByAppendingPathComponent(audioname)

    if NSFileManager.defaultManager().fileExistsAtPath(soundFileURL.absoluteString!) {
        // probably won't happen. want to do something about it?
        print("soundfile \(soundFileURL.absoluteString) exists")
    }
4

1 に答える 1

1

著作権保護のため、音楽ライブラリの曲のみを再生できます。行オーディオファイルにアクセスできません!.私は推測します

于 2016-11-18T10:38:46.437 に答える