"She has been playing the flute for years."
Translation:Zij bespeelt al jaren de dwarsfluit.
Ah OK, I thought so. The present perfect continuous in English (has been playing) is almost always used for something that's still happening now, or perhaps something that only just ended, so it doesn't sound as if heeft gespeeld would be an accurate translation for this English sentence. Maybe if it's an announcement of her retirement: 'She has been playing the flute for years, but tonight is her last concert'.
Even that doesn't work. You just can't combine heeft gespeeld with al jaren, except heeft al jaren niet meer gespeeld (hasn't played for years). If you combine it with jarenlang it means she's been doing it for years somewhere in the past, for instance:
Ze heeft jarenlang bas gespeeld (Ze speelde jarenlang bas), maar vorig jaar is ze overgestapt naar zang. (She played bass for years, but last year she switched to vocals.)
Edit: on second thought…maybe your sentence works, I'm mixing up Dutch and English in my mind now. Anyway without a specific context like the one you mention, it certainly doesn't work. :)