【问题标题】:How connect to MediaPlayer on android using php file如何使用 php 文件连接到 Android 上的 MediaPlayer
【发布时间】:2021-04-06 20:10:31
【问题描述】:

上次我开始在 Android 应用中使用 MediaPlayer。我想使用 php 将文件连接到服务器并播放 mp3 文件。当我尝试连接到 php 文件时出现错误:

W/System.err:     at android.media.MediaPlayer._prepare(Native Method)
at android.media.MediaPlayer.prepare(MediaPlayer.java:1458)
at com.example.myApp.main_page.main_page.onCreate(main_page.java:41)
at android.app.Activity.performCreate(Activity.java:7963)
at android.app.Activity.performCreate(Activity.java:7952)
W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3629)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100) 

我的安卓活动代码:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
String ip = "http://myIp:80/rec.php";
try {
    mediaPlayer.setDataSource(ip);
    mediaPlayer.prepare();
} catch (IOException e) {
    e.printStackTrace();
}
mediaPlayer.start();

我的php代码:

<?php
$file = 'directory/file.mp3';
header('Content-Description: File Transfer');
header('Content-Type: application/vnd.android.package-archive');
header('Content-Disposition: attachment; filename=file.mp3');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
echo readfile($file)
?>

当我使用浏览器下载文件连接到 php 文件时。

【问题讨论】:

    标签: php android http


    【解决方案1】:

    你应该试试ExoPlayer

    ExoPlayer 问题跟踪器中有discussion

    【讨论】:

    • 欢迎来到 Stack Overflow。要改进您的答案,请阅读tourHow do I write a good answer?。请考虑提供一个如何使用的例子。链接只能作为参考发布,而不是作为独立答案发布,因为它们可能会过时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 2012-03-21
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2019-10-03
    相关资源
    最近更新 更多