2016-10-18 3 views
1

複数のビデオをチャンクに分割してサーバーにアップロードしようとしています。複数のチャンクビデオをサーバーにアップロード

カメラロールからAVAssetsを取得し、URLを取得してキューに入れ、最初のファイルのURLで入力ストリームを開きます。私は前のファイルで終わった後で次のファイルを開くだけです。

動画をアップロードするとすべてうまくいくが、複数の動画を選択するとエラーが発生する。私は、ストリームのポーリングを使用していますが、これは、入力ストリームがコードを読まれる:

int size = 1024; 
uint8_t readBuffer[size]; 
NSMutableData *collectorBuffer = [NSMutableData data]; 
NSInteger length = 0; 
NSInteger totalReadBytes = 0; 

while (totalReadBytes < kChunkSize) { 
    length = [self.inputStream read:readBuffer maxLength:size]; 

    if (length) { 
     [collectorBuffer appendBytes:(const void *)readBuffer length:length]; 
     totalReadBytes += length; 
    } else { 
     break; 
    } 
} 

私が手にエラーが長されて-1とstreamErrorは次のとおりです。

エラードメイン= NSPOSIXErrorDomainコード= 1「の操作」のUserInfo = {_ kCFStreamErrorDomainKey = 1、_kCFStreamErrorCodeKey = 1}

許可されていない私はサンドボックスに動画をコピーし、それらをアップロードすることができることを承知していますが、全体のポイントは、そんなにメモリを割り当てないことです。 私がチェックしたすべてのアプリは、一度に1つのビデオのみをアップロードします。 iOSでアップロードすることも可能ですか?

答えて

0

あなたが最初にすべてののURLを取得してから、それらを読み始めると言います。この問題は、のURLを1つだけにすることで解決できます。

なぜこのようなことが起こるのかわかりませんが、私の仮説は(あなたのアプリのサンドボックスとは対照的にカメラロールを使っているので)、あなたはあなたが取得した最後のURLにアクセスする権限が与えられます。資産。

あなたの場合、すべてのURLを取得し、最初のURLからの読み取りを試みます。最初のURL(最初のURLのための権限を持っている)

  • は、2番目のURL(2番目のURLのための権限を持って、最初のURLのために失う権限をゲット

    1. :しかし、あなたはおそらく唯一の最後のURLを読み取るための権限を持っています)
    2. ...
  • +0

    @Nikolayディミトロフ、私の答えは、問題のお手伝いをしましたか? – Shade

    +0

    はい、まさにこのケースでした! –

    関連する問題