Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

【BUG】AudioConsumer 中 consume 方法是不是存在无法完整消费剩余数据的情况?

Aperta
#16 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Leggi agora_rtc/agora/rtc/utils/audio_consumer.py intorno a consume() alla riga 86, quindi traccia il modo in cui is_push_to_rtc_completed(), len() e release() osservano lo stato del consumer. Riproduci il caso in cui il push si interrompe con meno di un pacchetto di invio rimanente e non avviene alcun release. Il lavoro è completato quando i dati rimanenti e lo stato di completamento possono essere osservati correttamente senza restituire ripetutamente -2.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

https://github.com/AgoraIO-Extensions/Agora-Python-Server-SDK/blob/2426ade643485569879bef295ef24a265229445d/agora_rtc/agora/rtc/utils/audio_consumer.py#L86

在这个文件中

class AudioConsumer:
    def consume(self):
       //....something
        if besent_packages > AudioConsumer.MIN_BUFFER_SIZE and data_len //self._bytes_per_frame < AudioConsumer.MIN_BUFFER_SIZE: #for fist time, if data_len is not enough, just return and wait for next time
            #print("-----underflow data")
            return -2

这里虽然注释说只有第一次会触发,但是如果我推送结束后,不再有新的数据继续推送,但是剩余数据又不足一个发送包,并且没有 release 的情况下。这里会一直返回 -2 。也就是说在release 之前我无法通过is_push_to_rtc_completed 或者 len() 正确的判断是否发送完成。

Lingua principale
Python
Stelle
18
Fork
5
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di AgoraIO-Extensions/Agora-Python-Server-SDK

Tutte le issue di AgoraIO-Extensions/Agora-Python-Server-SDK

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.