Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
13Ori31
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 43
#1

NSTask(Input, Output) - Objective-C

25.03.2013, 13:11. Просмотров 768. Ответов 2
Метки нет (Все метки)

привет.

в приложение использую NSTask для запуска и управления проигрывателем mplayer(он запускается в режиме -slave).

-(void)qwer:videoPath{ //запускает воспроизивдение видео "videoPath"
NSArray *mplayerArg=[[NSArray alloc]initWithObjects:@"-geometry",xyTranslocationMplayerTask,
@"-quiet", @"-slave", @"-fs", videoPath,nil];

NSString *mplayerPath=[[NSBundle mainBundle] pathForResource:@"mplayer" ofType:nil inDirectory:@"binaries/x86_64"];
mplayerTask=[[NSTask alloc]init];

[mplayerTask setArguments:mplayerArg]; [mplayerTask setLaunchPath:mplayerPath];
[mplayerTask setStandardInput:[NSPipe pipe]]; [mplayerTask setStandardOutput:[NSPipe pipe]];

[mplayerTask launch];
......здесь таймером через секунд "n" вызывается метод "qwer"
}

qwer{
if ([mplayerTask isRunning]){
NSString *inpLength= [[NSString alloc]initWithFormat:@"get_time_length\n"];//команда mplayer на возврат времени видио сек
NSData *inpLengthData=[inpLength dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:NO];

[[[mplayerTask standardInput] fileHandleForWriting] writeData:inpLengthData];//посылка команды по входу mplayer

поидее дальше mplayer посылает мне ответ по выходу, я его читаю двумя строчками кода, одной он что то не получает
secData = [[[mplayerTask standardOutput] fileHandleForReading] availableData];
secData = [[[mplayerTask standardOutput] fileHandleForReading] availableData];

NSString *outLength = [[NSString alloc] initWithData:secData encoding:NSUTF8StringEncoding];

потом я из строки текста("фыааыфаы = 230.22") выделяю время
NSArray *part = [outLength componentsSeparatedByString:@"="];

дальше таймер где время - n ( где n время первого таймера ) таймер вызовет следующий метод, который делает действия(release ну и всякие) и повторно запускает 1 метод с нужным видео
[NSTimer scheduledTimerWithTimeInterval:[[part objectAtIndex:1]doubleValue]-n
target:self
selector:@selector(XXX)
userInfo:nil
repeats:NO];
}

}


вот, а проблема в том что вот эти вот две строки 1)шаманство))
secData = [[[mplayerTask standardOutput] fileHandleForReading] availableData];
secData = [[[mplayerTask standardOutput] fileHandleForReading] availableData];
2)при входе в этот круговорот видио, после первого раза, начинает глючить(не получать данные от mplayer, виснет все приложение)

прошу помочь разобраться, если можно пример отсылки и принятия.

спасибо

Добавлено через 2 часа 35 минут
код делает все что написано в предыдущем посте, но все же я его баюсь)) если кто увидит что нибуть не хорошее прошу укажите на это)))
спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 13:11     NSTask(Input, Output)
Посмотрите здесь:

Драйвет Input-Output для USB
Где найти блоки Input и Output Point? Matlab
Free Pascal input,output
INPUT и OUTPUT из файла QBasic
Java Сети Проблема с Input/Output
Python Python 3 utf-8 input/output (unix)
C++ Отсортировать элементы файла input и вывести их в файл output
Pascal Программа не работает корректно . Output\Input . Египетское умножение
Swift Input/output в swift
Нагрузка, Input/Output Usage
Пустые INPUT и OUTPUT C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
25.03.2013, 22:41     NSTask(Input, Output) #2
Цитата Сообщение от 13Ori31 Посмотреть сообщение
код делает все что написано в предыдущем посте, но все же я его баюсь
ЭтаПять!!!
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
26.03.2013, 12:20     NSTask(Input, Output) #3
Цитата Сообщение от mobidevelop Посмотреть сообщение
ЭтаПять!!!
Я вот вообще не смог тот пост полностью осилить... Написано жестко очень.
Yandex
Объявления
26.03.2013, 12:20     NSTask(Input, Output)
Ответ Создать тему
Опции темы

Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru