如何在应用程序加载时间时获得最大的用户体验

时间:2012-02-28 01:12:52

标签: android stream media-player user-experience

好的我已经制作了一个简单的广播应用程序,可以从我的大学电台播放音乐。我遇到的问题是,应用程序准备流所需的时间会导致播放按钮显示无响应。 详细说明:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mp = new MediaPlayer();
    initializeUI();
    setSource();
    preparedNotify();
    prepareMP();  
}

void initializeUI() {...
}

void setSource() {...
}

void prepareMP() {
    mp.prepareAsync();
}

正如您所看到的那样,只要onCreate被调用,应用就会启动prepareAsync,但如果用户在准备之前单击播放按钮,则不会发生任何事情,从而造成糟糕的用户体验。

所以,问题的关键在于:我能做些什么吗

a)减少准备流的时间

b)阻止用户按下按钮直到准备好,同时仍保持平稳的用户体验

4 个答案:

答案 0 :(得分:2)

在这些情况下,您有几个选择。首先,我将播放按钮变灰,直到加载流。这样,如果他们点击播放并且没有任何反应,人们就不会生气。 (这可能是对这种情况最常见的回应。)其次,您可以考虑为您的应用使用启动画面。这可能会略微惹恼用户,但根据您的需求,它可能是一个很好的解决方案。流需要一段时间才能加载:这就是互联网的工作方式,这些比特只能移动得那么快。你总是可以通过提供一些预先缓冲的顶级视图来延迟它们,然后允许用户在你准备就绪时点击你的应用程序。

答案 1 :(得分:1)

您可以使用setOnPreparedListener,以便了解MediaPlayer的准备时间。如果用户在准备之前单击播放按钮,您可以设置某种类型的标记,如playWhenPrepared,您可以在该监听器中检查,然后显示一些UI,如“缓冲...”对话框。如果它准备好了那么你就可以玩了。

答案 2 :(得分:0)

您可以将播放按钮设置为“按下状态”,并将图像从单击时设置为按下状态,直到onPostExecute。您还可以在此期间删除侦听器

答案 3 :(得分:0)

对于像这样的应用程序,通常会使用常用的UI,我会等待用户按下按钮,而不是加载带有旋转图标的流,比如说......左上角或右上角。这不仅适用于您的目的,而且还可以为用户提供更熟悉和直观的界面。祝好运! -SAM