2015-07-23 16 views
12

Chúng tôi đã nhận được một số báo cáo sự cố với các dấu vết ngăn xếp khó có thể giải mã được. Dấu vết ngăn xếp hoàn toàn nằm trong MediaPlayer, Foundation, CoreFoundation và libsystem_c.dylib. Thật không may, chúng tôi đã không thể tái tạo trên bất kỳ thiết bị phát triển nào của chúng tôi để khắc phục sự cố đang chứng minh sự cố.Điều gì có thể gây ra sự cố MediaPlayer trên iOS này?

Dưới đây là ví dụ về theo dõi ngăn xếp. Có ai nhìn thấy bất cứ điều gì như thế này hoặc có bất kỳ gợi ý về những gì có thể gây ra vụ tai nạn này?

EXC_BAD_ACCESS KERN_PROTECTION_FAILURE at 0x000000016fc47fe0 
Thread : Crashed: com.apple.main-thread 
0 libsystem_c.dylib    0x0000000196a0624c localeconv_l 
1 libsystem_c.dylib    0x0000000196a55d6c __vfprintf + 108 
2 libsystem_c.dylib    0x0000000196a73680 __v2printf + 588 
3 libsystem_c.dylib    0x0000000196a0620c _vsnprintf + 304 
4 libsystem_c.dylib    0x0000000196a06c58 snprintf_l + 24 
5 CoreFoundation     0x000000018462b01c __CFStringAppendFormatCore + 11584 
6 CoreFoundation     0x00000001846282a4 _CFStringCreateWithFormatAndArgumentsAux2 + 248 
7 Foundation      0x000000018546e448 -[NSPlaceholderString initWithFormat:locale:arguments:] + 172 
8 Foundation      0x000000018546e308 +[NSString stringWithFormat:] + 76 
9 MediaPlayer     0x00000001869bf524 -[NSObject(MPLogDescription) MP_shortDescription] + 96 
10 MediaPlayer     0x00000001869bf598 -[AVPlayerItem(MPLogDescription) MP_shortDescription] + 72 
11 MediaPlayer     0x00000001869bde2c -[MPAVQueueCoordinator _syncPlayerItems] + 1316 
12 MediaPlayer     0x00000001869bd8a4 -[MPAVQueueCoordinator _syncItems] + 1452 
13 MediaPlayer     0x00000001869becbc -[MPAVQueueCoordinator _updateCurrentItem] + 620 
14 MediaPlayer     0x00000001869be61c -[MPAVQueueCoordinator _syncPlayerItems] + 3348 
15 MediaPlayer     0x00000001869bd8a4 -[MPAVQueueCoordinator _syncItems] + 1452 
16 MediaPlayer     0x00000001869becbc -[MPAVQueueCoordinator _updateCurrentItem] + 620 
17 MediaPlayer     0x00000001869be61c -[MPAVQueueCoordinator _syncPlayerItems] + 3348 
18 MediaPlayer     0x00000001869bd8a4 -[MPAVQueueCoordinator _syncItems] + 1452 
19 MediaPlayer     0x00000001869becbc -[MPAVQueueCoordinator _updateCurrentItem] + 620 
20 MediaPlayer     0x00000001869be61c -[MPAVQueueCoordinator _syncPlayerItems] + 3348 
... 

Dấu vết ngăn xếp tiếp tục lặp lại hàng trăm lần nữa của ba dòng cuối cùng ở trên.

+0

Hi Greg, là bạn có thể tìm thấy một giải pháp cho vấn đề này? Vụ tai nạn này hiện đang xảy ra với tôi và tôi đang cố gắng chẩn đoán. – wsidell

+0

Mọi người cập nhật? Tôi cũng phải đối mặt với cùng một vấn đề. –

+0

Tôi đang đấu tranh vấn đề chính xác này trong ứng dụng của chúng tôi. Để liên tục thực hiện việc này, hãy thử đặt thiết bị ngủ bằng nút ngủ, sau đó đánh thức thiết bị và sau đó thực hiện tác vụ để khiến video phát. Nó xảy ra mỗi lần ở đây. –

Trả lời

0

Từ mô tả của bạn, có vẻ như người chơi nhập vào vòng lặp vô hạn phân bổ bộ nhớ hoặc tăng con trỏ. Đây là (đoán ở đây) rất có thể do tải một tệp video không đúng định dạng.

Khi ứng dụng hết không gian địa chỉ và/hoặc con trỏ được tăng/giảm đến điểm mà nó trỏ ra ngoài không gian địa chỉ của ứng dụng, hạt nhân sẽ giết nó vì vi phạm bộ nhớ.

1

Điều này đã xảy ra trên ứng dụng iOS 8.4 của tôi tại đây. Hóa ra rằng ứng dụng đang cố tải một tệp video cục bộ không tồn tại. Nó đã cố gắng để tải 'Animation.mp4' khi tập tin được gọi là 'Intro.mp4' và tôi đã không có lỗi đánh bắt mã để phát hiện điều này.

Kết quả cuối cùng là chính xác chồng cùng dấu vết như trên - vài trăm lần lặp lại 3 dòng cuối cùng của các dấu vết, màn hình trắng và một vụ tai nạn App

Vì vậy, có thể là giá trị kiểm tra này - nó có thể giúp đỡ một ai đó , mặc dù hy vọng bạn có chút nhạy cảm hơn và có một số lỗi khi bắt mã xung quanh mã tải của bạn :)

0

Tôi gặp phải vấn đề tương tự hôm qua. Tôi đã Tring để tải video trong MPMoviePlayerViewController

//Streaming video plying on MPMoviePlayerViewController 

NSString *fileURL = @"http://...../myvideo.mp4"; 

NSURL *url = [NSURL fileURLWithPath:fileURL]; 

MPMoviePlayerViewController *mpViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 

mpViewController.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming; 

     // Present the movie player view controller 
     [self presentViewController:mpViewController animated:YES completion:nil]; 
     // Start playback 
     [mpViewController.moviePlayer play]; 

Sau khi chạy này tôi nhận được lỗi sau - [MPAVQueueCoordinator _syncPlayerItems]

Sau khi chi tiêu giờ tôi thấy lỗi :) mã của tôi. Tôi đã đi qua URL trong "fileURLWithPath" vì nó cho thấy rằng erro. Để giải quyết mà tôi chỉ cần thay thế

NSURL *url = [NSURL fileURLWithPath:fileURL]; 

với

NSURL *url = [NSURL URLWithString:fileURL]; 
Các vấn đề liên quan