【问题标题】:How to Load NSData into an AVPlayerItem?如何将 NSData 加载到 AVPlayerItem 中?
【发布时间】:2012-08-02 15:06:39
【问题描述】:

这是我关于 How to Encrypt mp3 Files in iOS 的帖子中的后续问题。

如何使用 NSData 而不是文件路径/URL 将曲目加载到 AVPlayerItem 中?

谢谢

【问题讨论】:

  • 将其写入文件然后加载该文件
  • +1 给@Dustin。 AVPlayerItem 类真的没有给你太多选择。

标签: objective-c ios cocoa-touch nsdata avplayer


【解决方案1】:
[/*name of NSData*/ writeToFile:/*save file path*/ atomically: YES];
NSURL *filepath = [NSURL fileURLWithPath:/*save file path*/];
AVPlayerItem *player = [AVPlayerItem playerItemWithURL:filepath];

未经测试,但应该可以工作。

【讨论】:

  • +1 花时间提供一个例子。我太懒了:)
  • 感谢您的示例。我真的希望有另一种方法可以做到这一点,因为我认为以未加密的形式(即使只是暂时的)重新保存 MP3 会带来一些安全问题?
  • 这取决于您的 mp3 必须有多安全...如果有这么大的问题,您可以在完成后立即删除文件。
  • @Dustin 是的,这就是我要做的。我相信它会足够安全,但它并不完美。感谢您的帮助:)
  • 对于那些偶然发现这一点的人,AVAudioPlayer 的initWithData 方法可能会有所帮助
【解决方案2】:

为 Swift 5 更新 Dustin's answer

var audioData: Data // some audio data
var fileURL: URL // some local path, probably appending NSTemporaryDirectory() 
try! audioData.write(to: fileURL)
let item = AVPlayerItem(url: fileURL)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2017-06-29
    • 2014-07-01
    • 2016-01-10
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多