I have used the Android program, TapDancer, which does a fair job. It's not the greatest UI and preparing a tape file for playback is pretty slow, but on the plus side, it does have built in C64 tape turbos.
So I started, drilled a hole and fitted an old jack socket I had in the datassette and soldered the poles to the points where the datassette magnetic head feeds its signal into the datassette PCB. Fingers crossed! Didn't work. No matter which volume I used, games just wouldn't load.
I searched around for a bit and came across a blog post by a guy who had done such a modification. He'd fitted a capacitor, which was later replaced by a resistor, to limit the volume. I had already tried the resistor with no effect, and I'm not sure what the capacitor would accomplish on its own.
And so the experiments started. After some attempts, this is what I ended up with: a 4.7k resistor and a 22 nF capacitor in an RC low-pass filter configuration. I can now use the same volume I use with the crappy tape adaptor, and I no longer get load errors. I need to reverse polarity in TapDancer, however.