3

当Android浏览器打开可以播放的媒体文件时,内置(stagefright?)媒体播放器打开并播放它。该媒体的标题根据URL显示在播放器对话框中。Android浏览器媒体播放器(stagefright?)显示的媒体名称

Android Media Player, with title highlighted

在这种情况下,网址为http://10.0.37.195/waug_mp3_128k。媒体播放器只是使用路径的最后部分作为其标题。

是否可以更改显示的标题?

我已经尝试了Content-Disposition头,但它没有任何效果:

Content-Disposition: inline; filename=Some Better Title 

回答

1

简短的回答是否定的。我不认为你可以改变显示的标题来显示服务器上的其他内容。

我相信该播放器是默认的AOSP音乐应用默认的AudioPreview活动。看看它的源代码,显然它会简单地使用URI的最后一个路径段来使用HTTP方案(它只会在本地内容/文件中查询媒体数据库)。

下面是相关的代码片段:

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    // ... 

    if (scheme.equals(ContentResolver.SCHEME_CONTENT)) { 

     // ... 

    } else if (scheme.equals("file")) { 

     // ... 

    } else { 
     // We can't get metadata from the file/stream itself yet, because 
     // that API is hidden, so instead we display the URI being played 
     if (mPlayer.isPrepared()) { 
      setNames(); 
     } 
    } 
} 

// ... 

public void setNames() { 
    if (TextUtils.isEmpty(mTextLine1.getText())) { 
     mTextLine1.setText(mUri.getLastPathSegment()); 
    } 
    if (TextUtils.isEmpty(mTextLine2.getText())) { 
     mTextLine2.setVisibility(View.GONE); 
    } else { 
     mTextLine2.setVisibility(View.VISIBLE); 
    } 
} 
+0

谢谢您的确切答案! – Brad 2012-07-28 20:11:25

+0

很高兴帮助!考虑一下,你可能会尝试的一件事是以某种方式配置服务器,以便像'http:// 10.0.37.195/waug_mp3_128k/title_to_display'这样的内容流式传输'http:// 10.0.37.195/waug_mp3_128k'的内容,或者甚至可能只是'http:// 10.0.37.195/title_to_display' :) – Joe 2012-07-28 22:58:09

+0

是的,这是计划。幸运的是,由于我正在构建服务器,因此该部分非常简单。 – Brad 2012-07-28 23:53:39

0

尝试使用文件名不带空格。我已经看到,Android的空间文件名有问题。它可能有帮助。

Content-Disposition: inline; filename=Some_Better_Title 
+0

你的建议有没有效果,对不起。 – Brad 2012-07-27 18:16:15