Encrypting media files in general take a lot of compute and storage and overall time and gas. But indeed in light of what @Kherwa said; you can use Alice's public key to encrypt the file and store it on IPFS. However this will limit the media to a single wallet, using ERC721 non-fungible tokens could do the same for you, but with added flexibility.
In the first situation you need to know when the media encryption process is done and preferably want the IPFS url to be stored somewhere with the smart contract and the associated wallet for later retrieval. I recommend you use an action based multi contract architecture that waits after the payment is done for your etherium oracle to callback when the encryption process is over and send you the details of the IPFS location. You can then store that data in the contracts transaction so that Alice can retrieve her media at whenever, where ever. I believe this is to be a regular secure method, since people do not tend to give away their private keys aka their wallet. The possible risk in this method could be that someone publishes his or her private key and everyone can access the content. To stop that kind of abuse one could couple KYC to the wallet before the encryption process starts.
In the case of a non-fungible token, the situation is different. An ERC721 token could represent a product with an unique id. That unique id represents a shared secret to the content in order to prevent the whole secret be known and with it abuse. The benefit in all this is that the product can be transferred to another wallet, allowing the new owner to access the content. This would be very useful for many different applications, including hardware of all sorts. I'm not sure how this could be implemented on IPFS at the moment and if there is any sort of witness needed to make the shared secret work. Although, I'm still wrapping my head around this on how to implement such system, I see a lot of potential. However don't take it to seriously.
In both cases the real problem lies in the end node when the data of the media file or product, if you will, is decrypted and cached for playback. Any client that knows how to deal with this kind of encryption and is allowed to use the private key is in a sense capable of copying the media and distribute it off-chain and sight anywhere they like. I believe therefor that the most reasonable option is live streaming media with a kind of subscription structure attached to it or people looking for private content of some sort.