2010-10-15 3 views
6

Tôi đang viết một ứng dụng lưu trữ phim trong cuộn ảnh vào thư mục tài liệu cục bộ cho ứng dụng. Tôi có thể phát phim từ xa bằng MPMoviePlayer, tuy nhiên cố gắng phát phim được lưu trữ trong thư mục tài liệu cho ứng dụng luôn trả về MPMovieLoadStateUnknown.MPMoviePlayer tải và phát phim được lưu trong tài liệu ứng dụng

Các thông báo đều được gửi và nhận từ trung tâm thông báo mặc định (MPMoviePlayerLoadStateDidChangeNotification, MPMoviePlayerPlaybackDidFinishNotification). Một hộp cảnh báo xuất hiện ngay sau khi nhận được thông báo loadStateUnknown trong bảng điều khiển, nói rằng bộ phim không thể phát được và ứng dụng sẽ nhận được thông báo phát lại phim hoàn tất.

Tôi nghĩ rằng có thể là trường hợp tên tệp (MPMoviePlayer chỉ có thể lấy URL làm vị trí nội dung) không thể tìm thấy. Có ai xử lý vấn đề này hay tương tự không?

Trả lời

1

cho rằng không ai trong số các câu trả lời khác dường như giải quyết vấn đề, tôi có xu hướng nghĩ rằng vấn đề có thể là với đường dẫn tệp tài liệu mà bạn đang tạo.

Bạn nên sử dụng các phương pháp sau đây để tạo ra các đường dẫn đến thư mục tài liệu của ứng dụng:

NSString *userDocumentsPath = nil; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
if ([paths count] > 0) 
{ 
    userDocumentsPath = [paths objectAtIndex:0]; 
} 
+0

Hãy suy nghĩ tôi đã thử mọi thứ nhưng điều này. Không thể cảm ơn đủ! – Kyle

+0

Vui vì tôi có thể giúp! :) –

0

bạn đã thử chuyển đổi các đường dẫn tập tin địa phương đến một url

[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",filePath]]; 

nếu có khoảng trống trong quý vị nộp con đường, bạn sẽ phải chuyển đổi chúng trước khi tạo URL

filePath = [filePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"]; 
filePath = [filePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 
0

Các Mẫu Dữ liệu cốt lõi chuyển đổi đường dẫn tệp thành URL như sau:

NSURL *storeUrl = [NSURL fileURLWithPath:whatever]; 

Điều đó dường như làm tất cả f đúng không gian thoát và các công cụ bởi vì tôi đang sử dụng này để tải một tập tin với một không gian trong đường dẫn.

+0

Việc làm này cung cấp các kết quả tương tự như câu hỏi orignal của tôi. Nếu tôi làm [NSData dataWithContentsOfURL: storeUrl] và NSLog mà tôi nhận được một danh sách khổng lồ các số HEX, vì vậy tôi biết đó là tìm tệp, hoặc dữ liệu sẽ là không. Tệp MPMoviePlayer có yêu cầu extenstion không? – Kyle

+0

Bạn đã kiểm tra phim để đảm bảo phim phát khi được kéo vào iTunes và đồng bộ hóa? – Nimrod

+0

Phim được tạo trong PhotoBooth và được gửi qua email tới iPad. Phim đã được lưu dưới dạng iPhone tương thích với Quicktime và phát từ cuộn ảnh và trên máy Mac. – Kyle

0

Tôi không chắc chắn nếu điều này sẽ giúp bạn. Trong hướng dẫn này có một số dòng mã mà có lẽ sẽ mang lại cho bạn trên con đường đúng đắn:

// Unless state is unknown, start playback 
if ([mp loadState] != MPMovieLoadStateUnknown) 
... 

Bạn sẽ tìm thấy đoạn mã này trong phương pháp sau đây:

- (void) moviePlayerLoadStateChanged:(NSNotification*)notification 

đây là liên kết để hướng dẫn: Tutorial

Hy vọng rằng điều này sẽ giúp bạn ...