"Play on" is the correct phrase for this context, meaning to exploit, or take advantage of. A slightly more formal version of is "play upon". Using "play off" in this specific context of exploiting someone's emotions is, I believe, an error.
To "play off" something or someone is far less exploitative. It is synonymous with expressions like to "bounce ideas off" someone, and means to make legitimate and fair use of their skills and knowledge.
To use a sporting analogy - as "playing" evidently is - if a football player exploited a weakness in an opposing team member you would likely say that they "played on their weakness". But if two players on the same team worked cooperatively you might say they "played off each other's strengths".
It is also worth noting that, away from these expressions, 'on' and 'off' are sometimes interchangeable and sometimes not. For example, people say "live on" and "live off" (as in "I can't live on this wage" or "he lives off his parents' money"), but we only ever say "prey on" (or "upon"). My answer should give you a broad sense of the difference between 'play on' and 'play off', but you may have to check dictionaries or other references to check if a particular use is correct.