Java 如何通过同一网络的Android(就像Gmote2.0一样)在计算机上播放mp3文件?

Java 如何通过同一网络的Android(就像Gmote2.0一样)在计算机上播放mp3文件?,java,android,port,Java,Android,Port,我看过gmote2.0是如何在Android上运行的。在计算机上访问媒体文件真的很酷,让它们播放会让它更酷,还有它的其他特性 现在,我想为android和PC制作一个程序。我想制作的是GMOTE 2.0,但我只想要它在PC上播放mp3文件的方式。我的PC和android在同一台NewWork(同一路由器)上 有人能给我一些建议,告诉我如何开始,我需要什么? 请帮帮我,我不知道这是怎么开始的。是否可以通过端口进行通信?(像TCP?这应该不难。基本上,您需要创建两个组件: 远程控制驱动程序:此应用程

我看过gmote2.0是如何在Android上运行的。在计算机上访问媒体文件真的很酷,让它们播放会让它更酷,还有它的其他特性

现在,我想为android和PC制作一个程序。我想制作的是GMOTE 2.0,但我只想要它在PC上播放mp3文件的方式。我的PC和android在同一台NewWork(同一路由器)上

有人能给我一些建议,告诉我如何开始,我需要什么?
请帮帮我,我不知道这是怎么开始的。是否可以通过端口进行通信?(像TCP?

这应该不难。基本上,您需要创建两个组件:

  • 远程控制驱动程序:此应用程序将在计算机上运行。它至少应该能够做到以下几点:

    • 导出所有歌曲的列表。这取决于你,它应该有多复杂。我会的 建议以XML格式从计算机导出所有歌曲。可能是这样的:

      <?xml version="1.0" encoding="UTF-8" ?>
      <list>
          <artist name="Fear Factory">
              <album name="Demanufacture" year="1995">
                  <song name="Demanufacture" track="01" filename="C:\MyMusic\FearFactory\01. Demanufacture.mp3" />
                  <song name="Self-bias resistor" track="02" filename="C:\MyMusic\FearFactory\01. Self-bias resistor.mp3" />
              </album>
          </artist>
          <artist name="Sybreed">
              <album name="Slave design">
                  <song name="Bioactive" track="01" filename="C:\MyMusic\Sybreed\bioactive.mp3" />
              </album>
          </artist>
      </list>
      
      public static void main(String args[]) {
          TCPServer server = new TCPServer(999);
          Sound     sound  = null;
      
          for (;;) {
              String command = server.accept();
      
              if (command.equals("UPDATE_DATABASE)) {
                  // generate xml
                  server.sendData(xml.getRawContent());
              } else if (command.equals("PLAY_SONG")) {
                  String filename = server.accept();
      
                  sound = new Sound(filename);
                  sound.play();
              } else if (command.equals("PAUSE_SONG")) {
                  if (sound.playing()) {
                      sound.pause();
                  } else {
                      sound.play();
                  }
              }
          }
      }
      
      它是在另一个线程中自动启动的,因此您不必担心 那个然而,Slick2D是游戏开发的主要工具,所以最好 找点别的

      另一种可能是只启动一些媒体播放器(或控制台媒体播放器)。 但我不建议这样做,因为这将更难控制 是否播放歌曲,或暂停歌曲

    • 停下来唱首歌

    • 获取当前歌曲:只需查找当前播放歌曲的名称并发送 它回来了
  • 这个应用程序不必是图形化的(但最好是图形化的)。最简单最丑陋的 版本可能如下所示:

    <?xml version="1.0" encoding="UTF-8" ?>
    <list>
        <artist name="Fear Factory">
            <album name="Demanufacture" year="1995">
                <song name="Demanufacture" track="01" filename="C:\MyMusic\FearFactory\01. Demanufacture.mp3" />
                <song name="Self-bias resistor" track="02" filename="C:\MyMusic\FearFactory\01. Self-bias resistor.mp3" />
            </album>
        </artist>
        <artist name="Sybreed">
            <album name="Slave design">
                <song name="Bioactive" track="01" filename="C:\MyMusic\Sybreed\bioactive.mp3" />
            </album>
        </artist>
    </list>
    
    public static void main(String args[]) {
        TCPServer server = new TCPServer(999);
        Sound     sound  = null;
    
        for (;;) {
            String command = server.accept();
    
            if (command.equals("UPDATE_DATABASE)) {
                // generate xml
                server.sendData(xml.getRawContent());
            } else if (command.equals("PLAY_SONG")) {
                String filename = server.accept();
    
                sound = new Sound(filename);
                sound.play();
            } else if (command.equals("PAUSE_SONG")) {
                if (sound.playing()) {
                    sound.pause();
                } else {
                    sound.play();
                }
            }
        }
    }
    
    我使用的大多数类可能都不存在。记住,这只是一个非常重要的问题 简化的例子

  • 手机应用程序。这取决于你。您需要创建一个 网络客户端,它将能够与计算机通信。这是最简单的。 您只需发送类似“UPDATE_DATABASE”的内容,并以XML形式接收一些数据。然后 您将使用一些库(可能是DOM解析器)并向用户(它)显示歌曲列表 也可以按类别进行分类)

    当用户单击某首歌曲时,它将读取其文件名(请参见上面XML中的属性)。 还有什么比发送“播放歌曲C:\MyMusic…”这样的内容更简单的呢?好, 也许有一件事-暂停这首歌。你也许会自己想出办法。 :-)


  • 就这些了。我希望我没有忘记一些重要的事情。

    对于提出这类问题的人来说,这听起来像是一个巨大的项目:|我做得对吗:你想使用安卓手机上的应用程序“遥控”PC上播放的音频。如果是这样的话,你应该先决定是在pc上编写自己的播放器,还是使用一些现有的软件,并使用其API远程控制它……是的,你得到了我想要的。你能举一些现有软件的例子让我检查一下吗?如果我决定在PC上编写自己的播放器,我还需要什么?提前谢谢!:))天啊!你是个疯子!:)非常感谢你的回答,它帮助了我,给了我这样的想法。现在我将努力解决这个问题。:)再次感谢!!你好@TomášZíma我很难完成代码部分。你能帮我举个工作实例吗?:)@Kerv我现在很忙。如果你不解决它,我会在周一或周二发布一些代码。谢谢。没关系。这只是我的实验项目,所以没必要着急。谢谢我会等的!:))嗨@TomášZíma。你不忙吗?你能发布我要求的工作示例代码吗?:)