有没有办法在Delphi XE7中使用带有Firemonkey的TMediaPlayer从URL播放.mp3文件?这个代码不起作用;
MediaPlayer1.FileName := 'http://wwww.some_site.com/some_song.mp3';
MediaPlayer1.Play;
它抛出了一个未找到文件的例外,所以我认为TMediaPlayer只适用于本地文件,不是吗?请,任何帮助都非常感谢,非常感谢。
答案 0 :(得分:0)
设置TMediaPlayer.FileName
属性时,它只是从指定路径的末尾(后面的所有内容,包括最后的.
字符)提取文件扩展名,找到该扩展名的已注册编解码器,然后告诉编解码器按原样加载FileName
值。编解码器返回TMedia
对象,然后TMediaPlayer
用于根据需要播放/控制媒体。默认情况下,FireMonkey仅为本地文件实现TMedia
个类。
您必须实现自定义TMedia
派生类来处理流媒体,并使用TCustomMediaCodec
派生类(使用TMediaCodecManager.RegisterMediaCodecClass()
注册自定义文件扩展名)来创建你的TMedia
课程。然后,您可以为以您的扩展名结尾的TMediaPlayer.FileName
分配一个网址(真正的网址不会,因此您的编解码器必须在访问该网址之前将其删除),例如:
MediaPlayer1.FileName := 'http://wwww.some_site.com/some_song.mp3.myext';