30.12.2014 / 11:10 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Naik, нет такой суммы пока что
__________________
わからない!! |
1.01.2015 / 20:32 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Записываю поток в файл, запускаю в проигрывателе (MX Player), играет, но чем больше разрешение видео, тем больше артефактов и заиканий. В том же MX Player есть функция потокового воспроизведения, и все играет четко. Такое впечатление, что часть данных где-то теряется private File testIpTv(Console out) {
try {
InetAddress addr = InetAddress.getByName(host);
MulticastSocket inputSocket = new MulticastSocket(port);
out.println("Connected? " + inputSocket.isConnected());
byte[] buf = new byte[4096];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
inputSocket.joinGroup(addr);
File f = new File(Environment.getExternalStorageDirectory(), "IPTViewer/");
f.mkdirs();
f = new File(f, "buff.mpg");
f.delete();
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
int i = 0;
while (i < 100000) {
i++;
inputSocket.receive(packet);
bos.write(packet.getData());
}
bos.flush();
bos.close();
inputSocket.close();
return f;
} catch (SocketException ex) {
ex.printStackTrace();
} catch (UnknownHostException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
|
1.01.2015 / 20:50 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Naik, буфер побольше сделать?
|
1.01.2015 / 22:10 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Ксакеп, делал разные от 512 до 163840. Резкльтат - чем больше буфер, тем быстрее пишутся данные и тем больше «помех», если меньше 4096, то вообще одни глюки. Вывод — я неправильно пишу данные Нужно записывать не весь буфер, а только колличество байтов считанных за один раз |
1.01.2015 / 22:32 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Исправил, теперь нормально воспроизводится, но все равно иногда появляются небольшие артефакты. Наверное Java из-за медлительности пропускает пакеты. Открыть спойлер Закрыть спойлер private File testIpTv(Console out) {
try {
InetAddress addr = InetAddress.getByName(host);
MulticastSocket inputSocket = new MulticastSocket(port);
byte[] buf = new byte[163840];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
inputSocket.joinGroup(addr);
File f = new File(Environment.getExternalStorageDirectory(), "IPTViewer/");
f.mkdirs();
f = new File(f, "buff.mp4");
f.delete();
OutputStream os = new FileOutputStream(f);
int i = 0;
while (i < 100000) {
i++;
inputSocket.receive(packet);
os.write(packet.getData(), 0, packet.getLength());
}
out.println("Buf size: " + inputSocket.getReceiveBufferSize());
out.println("Finished");
os.flush();
os.close();
inputSocket.close();
return f;
} catch (SocketException ex) {
ex.printStackTrace();
} catch (UnknownHostException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
|
2.01.2015 / 15:58 | |
warlock Пользователь Сейчас: Offline
Имя: Макс Откуда: Белгород Регистрация: 06.04.2011
| Мужики подскажите каким методом можно регулировать прозрачность объекта Bitmap, тоесть простой картинки ?
|
2.01.2015 / 16:11 | |
Reaper Пользователь Сейчас: Offline
Регистрация: 13.09.2013
| warlock, может сторонними либами?
|
2.01.2015 / 16:15 | |
Reaper Пользователь Сейчас: Offline
Регистрация: 13.09.2013
| |
2.01.2015 / 16:43 | |
warlock Пользователь Сейчас: Offline
Имя: Макс Откуда: Белгород Регистрация: 06.04.2011
| Reaper, спасибо почитаю .
|
3.01.2015 / 14:19 | |
UserSuperPupsik Пользователь Сейчас: Offline
Имя: UserSuperPupsik Регистрация: 27.09.2013
| Ребят, мне подсказали апроксимацию. Нарыл кривые Безье, разобрался всё работает. По 4-м точкам строил промежуточные точки, где t принадлежит интервалу (0;1) Потом понадобилась интерполяция. Здесь что-то не получается, кто-нибудь подскажите формулу полегче или ту, которую сам использует. |