Cognitive Radio Networks (CRNs) provide a solution for the spectrum scarcity problem facing the wireless communications community. To be able to utilize CRNs in practical applications, a certain level of quality-of-service (QoS) should be guaranteed to the secondary users (SUs) in such networks. In this paper, we propose a packet scheduling scheme that orders the SUs' transmissions according to the packet dropping rates and the number of packets queued waiting for transmission. A medium access control (MAC) protocol, based on the mentioned scheduling scheme, is proposed for a centralized CRN. In addition, the scheduling scheme is adapted for a distributed CRN, by introducing a feature that allows SUs to organize access to the available spectrum without the need for a central unit. Extensive simulation results are presented to evaluate the proposed protocols, in comparison with other MAC protocols designed for CRNs. The results demonstrate the effectiveness of our proposed protocols to guarantee the required QoS for voice packet transmission, while maintaining fairness among SUs.