小编pbo*_*dsk的帖子

在AVAudioEngine中从网络流数据,是否可能?

我有一个应用程序,我用它AVAudioEngine来使用AVAudioPlayerNodes和从本地文件系统播放文件AVAudioFiles.这完全没问题.

现在我想让我的设置也支持从互联网上的服务器流式传输MP3文件.

到目前为止我尝试过的

我希望我可以从NSURL指向网络地址的对象创建某种缓冲区,然后我可以使用它AVAudioPlayerNode.

我一直在搜索Stack Overflow互联网,但没有找到任何有关如何实现这一目标的好建议.

我知道这个AVAudioEngine阵容包括:

  • AVAudioPlayerNode,可播放来自AVAudioFile或的音频AVAudioBuffer.我AVAudioFile今天已经用于我的"本地文件设置"了.
  • AVAudioFile,用于本地文件.'AVAudioFile'是使用'NSURL'创建的,所以我尝试使用指向服务器上的MP3文件的URL,就像在Playground中一样:

    var fileError: NSError? = nil
    let file = AVAudioFile(forReading: someURL, error: &fileError)
    if fileError != nil {
        fileError
    }
    
    Run Code Online (Sandbox Code Playgroud)

这会给我带来这个错误的回报:

Error Domain=com.apple.coreaudio.avfaudio Code=2003334207 "The operation couldn’t be completed. (com.apple.coreaudio.avfaudio error 2003334207.)" UserInfo=0x7fbfab424480 {failed call=ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)}
Run Code Online (Sandbox Code Playgroud)
  • AVAudioPCMBuffer,这是我希望使用的类,但我找不到用数据实例化它的方法.

我的问题(只是为了说清楚:-))

那些有光明的人知道如何使用AVAudioEngine从互联网上的服务器流式传输MP3文件吗?

或者我应该放弃并使用AVPlayer它?

期待您的回音.

macos objective-c ios swift avaudioengine

9
推荐指数
1
解决办法
1552
查看次数

由于信号命令失败:分段故障:11,同时发出IR SIL功能

我想在扩展中添加闭包属性,UITextView所以我使用typealias定义一个闭包:

typealias TextViewHeightDidChangedClosure = (_ currentTextViewHeight:CGFloat)->Void

extension UITextView{

  func setTextViewHeightDidChanged(textViewHeightDidChanged:TextViewHeightDidChangedBlock){
    objc_setAssociatedObject(self, &TextViewHeightDidChangedBlockKey, textViewHeightDidChanged, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY_NONATOMIC)
  }

  func textViewHeightDidChanged()->TextViewHeightDidChangedBlock?{
   let textChanged : ((CGFloat)->Void) = objc_getAssociatedObject(self, &TextViewHeightDidChangedBlockKey) as! TextViewHeightDidChangedBlock
    return textChanged
  }

}
Run Code Online (Sandbox Code Playgroud)

但它告诉我一个错误说:

由于信号命令失败:分段错误:11.

这是错误的图像

我的代码

谁能告诉我为什么,给我一个深刻有意义的解释,非常感谢你!

extension-methods closures runtime properties swift

8
推荐指数
2
解决办法
4989
查看次数

UNTimeIntervalNotificationTrigger nextTriggerDate()是否给出了错误的日期?

我正在更新我的本地通知以使用iOS 10,我遇到了一个问题,我认为nextTrigger函数返回NOT"触发条件将满足的下一个日期."而是返回当前日期时间的任何内容.加上您最初设置UNTimeInvervalNotificationTrigger的内容.

因此,如果您将触发器设置为在60秒内关闭,那么从文档中我期望当我调用nextTriggerDate()时,我会让它返回设置触发器的日期时间+ 60秒.因此,如果我将其设置为12:00:00,我希望nextTriggerDate()将是12:01:00.然而,我所经历的是,无论当前日期是+ 60秒,它都会返回.

我编写了一个调度UNTimeIntervalNotificationTrigger的示例,然后每秒打印出nextTriggerDate().当我运行它时,我每秒都会获得一个新的nextTriggerDate.像这样:

            //Optional(2016-11-03 21:26:31 +0000)
            //Optional(2016-11-03 21:26:32 +0000)
            //Optional(2016-11-03 21:26:33 +0000)
            //Optional(2016-11-03 21:26:34 +0000)
            //Optional(2016-11-03 21:26:35 +0000)
            //Optional(2016-11-03 21:26:36 +0000)
Run Code Online (Sandbox Code Playgroud)

我用苹果打开了TSI,但是......你知道......这需要一段时间.所以我想我会看到这里是否有人有任何见解.我怀疑这是一个错误,如果我得到更多信息,我会更新这个.

这是我用来说明问题的代码:

import UIKit
import UserNotifications

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    @IBOutlet weak var setButton: UIButton!

    @IBOutlet weak var timePicker: UIPickerView!

    weak var timer: Timer?

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func setButtonAction(_ sender: UIButton) {
        var mySecond = pickerSelection

        // build notification
        let content …
Run Code Online (Sandbox Code Playgroud)

datetime swift ios10 usernotifications

6
推荐指数
1
解决办法
1091
查看次数

Facebook登录Swift 3

嗨,我遇到FBLogin的问题,Swift 它始终显示

"用户取消了登录."

iOS8.2

" NSUserDefaults由于模拟器错误而退回存储访问令牌"

我用的时候 iOS10.1

你对这个问题有什么建议吗?

在此输入图像描述

facebook facebook-login facebook-sdk-4.0 swift swift3

4
推荐指数
1
解决办法
3351
查看次数

应用程序使用的 iCloud 存储空间?

我在 Applestore 发布了我的应用程序以供审核,但遭到拒绝,上面写着:

" 在启动和内容下载时,您的应用程序会在用户的 iCloud 上存储 1.4 GB,这不符合 iOS 数据存储指南。"

我在问题的末尾粘贴了完整的拒绝文本。

我不知道将数据存储到 ICLoud,我不确定他们如何测试我的应用程序。他们建议查看 iCloud 存储的设置,我做了什么,但是在安装时我看不到我的应用程序使用的任何 iCloud 存储:

在此处输入图片说明

经过一段时间或设置后,是否有任何自动过程将数据从文档文件夹存储到云端?

通常我的应用程序是 - 从我的服务器下载一个 zipfile 以存储在我的应用程序的 Document 文件夹中。- 然后应用程序也在文档文件夹中解压缩 zipfile。

使用 IOS-Simulator 进行测试时,我可以使用外壳检查文档文件夹的内容,内容就在那里。(而不是在 iCloud 上)

有人可以帮助我,在这种情况下开发人员必须做什么。

我在这里粘贴了相关代码,它显示了我如何下载内容以及如何解压缩内容。

    class ViewController: UIViewController, NSURLSessionDelegate {

    let sDataPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString as String; ///var/mobile/Containers/Data/Application/8897ED62-5BAE-4255-8459-F0F8381C171F/Documents/
    download_file(sfrom,sToLocation: sDataPath);


     func download_file(sURL: String, sToLocation: String) {

            print("start downloading ...");
            print("sURL : " + sURL + " sToLocation : " + sToLocation);
            bytesDownloaded=0;

            let downloadsessiondelegate = self;
            downloadsessiondelegate.storePath=sToLocation; …
Run Code Online (Sandbox Code Playgroud)

iphone ios icloud swift

3
推荐指数
1
解决办法
1620
查看次数