QoS-aware multicast service is an essential component in the future high speed Internet. QoS-aware multicast routing algorithm and protocol are the core of QoS-based multicast architecture. Proposed in this paper is a multi-path and QoS-aware multicast routing protocol integrated with both a centralized algorithm and a distributed one. A node initially takes, from a special node called the manager, some information about the existing tree the receiver wants to join. Then it uses Dijkstra's minimum cost algorithm with some costs as the parameters to calculate several minimum cost paths from the joining receiver to the source node and the on-tree nodes of the group, and regards them as a set of feasible paths for selection. When a joining receiver gets the set, it employs a heuristic to select the best path to join multicast tree. Analysis and experiments prove that this algorithm can be used to solve the delay and bandwidth-constrained minimum-cost multicast tree problem for it has many advantages such as loopfree, high average call accepted ratio, shorter average call setup time, and better scalability.