libtorrent оповещения о новых частях

Я занимаюсь разработкой приложения для потоковой передачи мультимедийных файлов через торренты.

Бэкэнд должен подавать новые части внешнему интерфейсу по мере их поступления.

Мне нужен механизм, чтобы получать уведомления, когда новые части прибыли и проверены. Из того, что я могу сказать, я мог бы сделать это с помощью block_finished_alerts. Я бы отслеживал, какие блоки прибыли для данной части, и читал ее, когда все блоки прибыли.

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

1 ответ

Решение

То, что вы просите, называется piece_finished_alert, Он публикуется каждый раз, когда новая часть завершает загрузку и проходит хэш-проверку. Чтобы прочитать часть с диска, вы можете использовать torrent_handle::read_piece() (и получить результат в read_piece_alert).

Однако, если вы хотите потоковое воспроизведение мультимедиа, вы, вероятно, хотите использовать torrent_handle::set_piece_deadline() и установите флаг для отправки read_piece_alerts по мере поступления фрагментов. Это вызовет встроенную потоковую функцию libtorrent.

Другие вопросы по тегам