에서 FTP에 업로드 비디오 (.MOV) 사용자 후 동영상을 업로드한다는 것입니다 파일을 열고 재생하지 못했습니다. 내 코드에서</p> <p>지금까지, 모든 것을 거의 다하지만 하나의 문제를 충족 사용자가 우리의 FTP 서버에 동영상을 업로드 할 내가 APP 일하고의 iDevice
"영화의 파일 형식이 인식되지 않기 때문에 열 수 없습니다"선수 반환 퀵타임
오류 메시지가, 내가 그런 다음 비디오를로드 ALAssetsLibrady
사용하여 사용자에게 선택 비디오를 할 수있다 업로드를 시작하기 전에 ALAsset 객체에 NSInputStream 객체에 비디오를로드하십시오. 여기에 코드가 있습니다.
ALAssetRepresentation *rep = [currentAsset defaultRepresentation];
Byte *buffer = (Byte*)malloc(rep.size);
NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];
iStream = [NSInputStream inputStreamWithData:data];
[iStream open];
다음 단계는 NSOutputStream을 설정하고 열어 다음 코드로 업로드 작업을 처리하는 것입니다.
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventNone:
{
break;
}
case NSStreamEventOpenCompleted:
{
//opened connection
NSLog(@"opened connection");
break;
}
case NSStreamEventHasBytesAvailable:
{
// should never happen for the output stream
[self stopSendWithStatus:@"should never happen for the output stream"];
break;
}
case NSStreamEventHasSpaceAvailable:
{
// If we don't have any data buffered, go read the next chunk of data.
NSInteger bufferSize = 65535;
uint8_t *buffer = malloc(bufferSize);
if (bufferOffset == bufferLimit) {
NSInteger bytesRead = [iStream read:buffer maxLength:bufferSize];
if (bytesRead == -1) {
[self stopSendWithStatus:@"file read error"];
} else if (bytesRead == 0) {
[self stopSendWithStatus:nil];
} else {
bufferOffset = 0;
bufferLimit = bytesRead;
}
}
// If we're not out of data completely, send the next chunk.
if (bufferOffset != bufferLimit) {
NSInteger bytesWritten = [oStream write:&buffer[bufferOffset] maxLength:bufferLimit - bufferOffset];
if (bytesWritten == -1) {
[self stopSendWithStatus:@"file write error"];
} else {
bufferOffset += bytesWritten;
}
}
//NSLog(@"available");
break;
}
case NSStreamEventErrorOccurred:
{
//stream open error
[self stopSendWithStatus:[[aStream streamError] description]];
break;
}
case NSStreamEventEndEncountered: //ignore
NSLog(@"end");
break;
}
}
오류가 발생 결코, 비디오 파일이 올바른 파일 크기와 이름을 FTP로 업로드하지만, 단지 그것을 열 수 없습니다.
아무도 단서를 알고 있습니까?