Мне нужно определить тип файла и затем выполнить для него определенное действие. похоже, для некоторых типов это работает нормально, однако смешиваются все типы мультимедиа, такие как видео и звуковые файлы. Я определяю тип файла следующим образом:
BOOL matchedMP3 = ([[rowValue pathExtension] isEqualToString:@"mp3"]);
if (matchedMP3 == YES)
{
NSLog(@"Matched MP3");
}
Я делаю это для различных типов файлов и просто определяю «else» для всех остальных. Вот проблема, хотя. IPhone называет их обоих. Вот что показывает журнал:
2010-05-11 18: 51: 12.421 Тест [5113: 207] Соответствует MP3
2010-05-11 18: 51: 12.449 Тест [5113: 207] Соответствует ELSE
Я никогда не видел ничего подобного раньше.
Это моя функция "matchedMP3":
BOOL matchedMP3 = ([[rowValue pathExtension] isEqualToString:@"mp3"]);
if (matchedMP3 == YES)
{
NSLog(@"Matched MP3");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
self.directoryContent = [manager directoryContentsAtPath:documentsDirectory];
NSString *errorMessage = [documentsDirectory stringByAppendingString:@"/"];
NSString *urlAddress = [errorMessage stringByAppendingString:rowValue];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:urlAddress]];
moviePlayer.movieControlMode = MPMovieControlModeDefault;
moviePlayer.backgroundColor = [UIColor blackColor];
[moviePlayer play];
}
и вот еще утверждение:
else {
NSLog(@"Matched ELSE");
[[NSUserDefaults standardUserDefaults] setObject:rowValue forKey:@"rowValue"];
NSString*rowValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"rowValue"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
self.directoryContent = [manager directoryContentsAtPath:documentsDirectory];
NSString *errorMessage = [documentsDirectory stringByAppendingString:@"/"];
NSString *urlAddress = [errorMessage stringByAppendingString:rowValue];
webViewHeader.prompt = rowValue;
[documentViewer setDelegate:self];
NSString *encodedString = [urlAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//Create a URL object.
NSURL *url = [NSURL URLWithString:encodedString];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[documentViewer loadRequest:requestObj];
[navigationController pushViewController:webView animated:YES];
}
Я не вижу причины, по которой это не сработает. В результате веб-представление и MediaPlayer переключают свой собственный проигрыватель, поэтому они перекрывают друг друга и воспроизводят звук / видео на расстоянии нескольких секунд друг от друга.
Буду признателен за любую помощь, и спасибо, что нашли время, чтобы прочитать мой код.