Jump to content
MrPhantomRed

Como fazer um software de músicas em Java

Recommended Posts

Como um trabalho de fim de ano do curso técnico de informática que eu estou fazendo o professor pediu um software em Java. Bem, o tema é livre, mas eu estou meio perdido. Eu decidi fazer um software que baixe, organize e reproduza arquivos de músicas, como o Spotify (a versão desktop), mas estou sem um caminho ainda. Como pegar os arquivos da Internet e como filtrar os resultados? Por exemplo, se eu pesquisar uma música no SoundCloud aparece muitos resultados, como escolher a música certa que o usuário pede? Entre outros coisas eu pretendo fazer um aplicativo pra Android quando terminar tudo no desktop. Alguma sugestão?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By MarVinOlivieraS
      Boa noite, tenho 34 anos e já comecei a aprender .php alguns anos atrás porém não pude continuar pois fui trabalhar numa área muito diferente. Hoje consegui um tempo para me dedicar a uma atividade q gosto. Escolhi voltar a a aprender a programar, mas como imagino que o mobile é que deve continuar em alta imaginei (Talvez por desinformação) que fosse mais rentável aprender Java invés de Php, já que o Java pode ser usado para desenvolvimento web, mobile e games.
      Eis que pesquisando sobre o assunto.... a maioria das pessoas que vi falando sobre começar a programar indicam aprender Javascript por também poder ser usado na maioria das áreas que o Java e por ter mais vagas de emprego.
       
      Aí imbaralhou tudo em minha cabeça... pois não quero aprender uma coisa que está entrando em desuso mas apesar de não lembrar mais nada de .php lembro que gostava de aprender a usá-lo e da sua randw Gama de possibilidades.
    • By T635
      Estou desenvolvendo um app para medir os batimentos do usuário por meio de um sensor em seu smartwatch. Entretanto estou com um bug na linha 36, e não faço a mínima ideia de como resolver.
      O link do código é esse:
      https://pastebin.com/gwEzhCdh
    • By joaohouto
      Olá, pessoal!
       
      Estou dando início a minha caminhada no desenvolvimento nativo para Android, e durante esse percurso encontrei certa dificuldade ao tentar exibir uma notificação simples.
      Segue o código:
       
      //imports public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); gerarNotificacao(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void gerarNotificacao(){ NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon( R.drawable.ic_launcher ) .setTicker( "Título ticker de teste" ) .setContentTitle( "Título de teste" ) .setContentText( "Texto de corpo - teste" ) .setAutoCancel( true ); int id = 1; NotificationManager notifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notifyManager.notify( id, builder.build() ); } }  
      Obs.: Esse é um código exemplo que achei em um site aleatório da internet
      Bom, ao iniciar a tela principal a notificação não é exibida, por quê?
       
      Agradeço a quem puder ajudar. :D
    • By Rengavitp
      Boa tarde pessoal, sou novo ainda em java e estou com a seguinte dificuldade, preciso imprimir um pedido de venda que vem de um sistema no formato json, ja tentei de diversas formas mas nenhuma deu certo, alguem pode me ajudar? Vou colocar abaixo o arquivo json e o metodo mais recente que testei, porem ele só mostra null, sei que o problema deve estar na forma de percorrer o json, mas nao faço ideia de como fazer.
       
      { "retorno":{ "pedidos":[ { "pedido":{ "desconto":"15,00", "observacoes":"Testando o campo observações do pedido", "observacaointerna":"Testando o campo observações internas do pedido", "data":"2017-07-28", "numero":"1", "numeroPedidoLoja":"100000001", "vendedor":"João da Silva", "valorfrete":"22.50", "totalprodutos":"139.98", "totalvenda":"147.48", "situacao":"Em Aberto", "loja": "123456789", "dataPrevista":"2017-07-28", "tipoIntegracao":"Magento", "cliente":{ "nome":"Organisys Software", "cnpj":"00.000.000/0000-1", "ie":"0000000000", "rg":"162788484", "endereco":"Rua Visconde de São Gabriel", "numero":"000", "complemento":"Sala 000", "cidade":"Bento Gonçalves", "bairro":"Cidade Alta", "cep":"95.700-000", "uf":"RS", "email":"teste@organisys.com.br", "celular":"", "fone":"(54) 2222-22222" }, "itens":[ { "item":{ "codigo":1234, "descricao":"Mochila", "quantidade":"2.0000", "valorunidade":"69.990000000", "precocusto":null, "descontoItem":"0.00", "un":"Pç", "pesoBruto": "0.520", "largura": "20", "altura": "18", "profundidade": "15", "unidadeMedida": "cm", "descricaoDetalhada": "Ecobag esportiva" } } ], "parcelas":[ { "parcela":{ "valor":"73.74", "dataVencimento":"2017-07-28 00:00:00", "obs":"Teste obs 1", "forma_pagamento":{ "id":"1", "descricao":"Dinheiro", "codigoFiscal":"1" } } }, { "parcela":{ "valor":"73.74", "dataVencimento":"2017-08-28 00:00:00", "obs":"Teste obs 2", "forma_pagamento":{ "id":"1", "descricao":"Dinheiro", "codigoFiscal":"1" } } } ], "nota":{ "serie":"1", "numero":"012346", "dataEmissao":"2017-08-28 00:00:00", "situacao":"1", "chaveAcesso":"43140401056417000139550010000123461496923524", "valorNota": "147.48" }, "transporte":{ "transportadora":"Transportadora", "cnpj":"00.000.000/0000-1", "tipo_frete":"R", "volumes":[ { "volume":{ "idServico":"1231293", "servico":"SEDEX 10", "codigoRastreamento":"SX052413651BR", "dataSaida":"2017-07-28", "prazoEntregaPrevisto":"1", "valorFretePrevisto":"11.25", "valorDeclarado": "0.00", "remessa":{ "numero":"12345AAA", "dataCriacao":"2017-10-17" }, "dimensoes":{ "peso":"1.553", "altura":"20", "largura":"15", "comprimento":"20", "diametro":"0" } } }, { "volume":{ "idServico":"1231293", "servico":"SEDEX 10", "codigoRastreamento":"SX052413651BR", "dataSaida":"2017-07-28", "prazoEntregaPrevisto":"1", "valorFretePrevisto":"11.25", "remessa":null, "dimensoes":{ "peso":"1.553", "altura":"20", "largura":"15", "comprimento":"20", "diametro":"0" } } } ], "enderecoEntrega":{ "nome":"Organisys Software Entrega", "endereco":"Rua Assis Brasil", "numero":"222", "complemento":"", "cidade":"Bento Gonçalves", "bairro":"Centro", "cep":"95.700-000", "uf":"RS" } } } } ] } } package javaapplication2; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JSONRead { public static void main(String[] args) { JSONObject jsonObject; //Cria o parse de tratamento JSONParser parser = new JSONParser(); //Variaveis que irao armazenar os dados do arquivo JSON String nome; String sobrenome; String estado; String pais; try { //Salva no objeto JSONObject o que o parse tratou do arquivo jsonObject = (JSONObject) parser.parse(new FileReader( "//users/vagnermocelin/teste.json")); //Salva nas variaveis os dados retirados do arquivo numero = (String) jsonObject.get("numero"); vendedor = (String) jsonObject.get("vendedor"); total_produtos = (String) jsonObject.get("total_produtos"); total_venda = (String) jsonObject.get("total_venda"); System.out.printf( "Numero: %s\nVendedor: %s\nProdutos: %s\nVenda: %s\n", numero, vendedor, total_produtos, total_venda); } //Trata as exceptions que podem ser lançadas no decorrer do processo catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }  
    • By gabefgonc
      Olá, quando tento fazer um jar com os códigos a seguir, e abro o executável, ele lança a seguinte exceção:
      java.io.FileNotFoundException: res/world/world1.txt (Arquivo ou diretório inexistente)
      at java.base/java.io.FileInputStream.open0(Native Method)
      at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
      at java.base/java.io.FileInputStream.(FileInputStream.java:157)
      at java.base/java.io.FileInputStream.(FileInputStream.java:112)
      at java.base/java.io.FileReader.(FileReader.java:60)
      at br.gabefgonc.javaxswingtests.utils.Utils.loadFileAsString(Utils.java:13)
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:68)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      java.lang.NumberFormatException: For input string: “”
      at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
      at java.base/java.lang.Integer.parseInt(Integer.java:662)
      at java.base/java.lang.Integer.parseInt(Integer.java:770)
      at br.gabefgonc.javaxswingtests.utils.Utils.parseInt(Utils.java:26)
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:71)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      Exception in thread “Thread-0” java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:72)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      códigos:
      World.java:
      package br.gabefgonc.javaxswingtests.worlds;
      import br.gabefgonc.javaxswingtests.entities.EntityManager;
      import br.gabefgonc.javaxswingtests.entities.Player;
      import br.gabefgonc.javaxswingtests.entities.Tree;
      import br.gabefgonc.javaxswingtests.inventory.Inventory;
      import br.gabefgonc.javaxswingtests.items.Item;
      import br.gabefgonc.javaxswingtests.items.ItemManager;
      import br.gabefgonc.javaxswingtests.main.Game;
      import br.gabefgonc.javaxswingtests.main.Handler;
      import br.gabefgonc.javaxswingtests.main.tiles.Tile;
      import br.gabefgonc.javaxswingtests.utils.Utils;
      import java.awt.*;
      public class World {
      private int width, height, spawnX,spawnY;
      private int[][] tiles;
      private Handler handler;
      private EntityManager entityManager;
      private ItemManager itemManager;
      public World(Handler handler, String path){
      this.handler = handler;
      entityManager = new EntityManager(handler, new Player(handler, 0, 0));
      loadWorld(path);
      entityManager.getPlayer().setX(spawnX);
      entityManager.getPlayer().setY(spawnY);
      itemManager = new ItemManager(this.handler); } public void tick(){ entityManager.tick(); itemManager.tick(); } public void render(Graphics g){ int xStart = (int) Math.max(0, handler.getCamera().getxOffset() / Tile.TILE_WIDTH); int xEnd = (int) Math.min(width, (handler.getCamera().getxOffset() + handler.getWidth()) / Tile.TILE_WIDTH + 1); int yStart = (int) Math.max(0, handler.getCamera().getyOffset() / Tile.TILE_HEIGHT); int yEnd = (int) Math.min(height, (handler.getCamera().getyOffset() + handler.getHeight()) / Tile.TILE_HEIGHT + 1); for(int y = yStart; y < yEnd; y++){ for(int x = xStart; x < xEnd; x++){ getTile(x, y).render(g, (int) (x * Tile.TILE_WIDTH - handler.getCamera().getxOffset()), (int) (y * Tile.TILE_HEIGHT - handler.getCamera().getyOffset())); } } itemManager.render(g); entityManager.render(g); } public Tile getTile(int x, int y){ Tile t; if(x < width && y < height) t = Tile.tiles[tiles[x][y]]; else t = null; if(t == null){ return Tile.grassTile; } return t; } private void loadWorld(String path){ String file = Utils.loadFileAsString(path); String[] tokens = file.split("\\s+"); System.out.println(tokens[0]); width = Utils.parseInt(tokens[0]); height = Utils.parseInt(tokens[1]); spawnX = Utils.parseInt(tokens[2]); spawnY = Utils.parseInt(tokens[3]); tiles = new int[width][height]; for(int y = 0; y < height; y++){ for(int x = 0; x < width; x++){ tiles[x][y] = Utils.parseInt(tokens[(x + y * width) + 4]); if(Utils.parseInt(tokens[(x + y * width) + 4]) == 5){ entityManager.addEntity(new Tree(handler, x * Tile.TILE_WIDTH, y * Tile.TILE_HEIGHT)); } } } } public int getWidth() { return width; } public int getHeight() { return height; } public EntityManager getEntityManager(){ return entityManager; } public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; } public ItemManager getItemManager() { return itemManager; } public void setItemManager(ItemManager itemManager) { this.itemManager = itemManager; } }
      Utils.java:
      package br.gabefgonc.javaxswingtests.utils;
      import java.io.BufferedReader;
      import java.io.FileReader;
      import java.io.IOException;
      public class Utils {
      public static String loadFileAsString(String path){ StringBuilder builder = new StringBuilder(); ClassLoader classLoader = ClassLoader.getSystemClassLoader(); try { BufferedReader br = new BufferedReader(new FileReader(path)); String line; while((line = br.readLine()) != null){ builder.append(line + "\n"); } }catch(IOException e){ e.printStackTrace(); } return builder.toString(); } public static int parseInt(String number){ try{ return Integer.parseInt(number); }catch(NumberFormatException e){ e.printStackTrace(); return 0; } } }
      GameState.java:
      package br.gabefgonc.javaxswingtests.main.states;
      import br.gabefgonc.javaxswingtests.entities.EntityManager;
      import br.gabefgonc.javaxswingtests.entities.Player;
      import br.gabefgonc.javaxswingtests.entities.Tree;
      import br.gabefgonc.javaxswingtests.gfx.ImageLoader;
      import br.gabefgonc.javaxswingtests.gfx.SpriteSheet;
      import br.gabefgonc.javaxswingtests.main.Game;
      import br.gabefgonc.javaxswingtests.main.Handler;
      import br.gabefgonc.javaxswingtests.main.tiles.Tile;
      import br.gabefgonc.javaxswingtests.worlds.World;
      import java.awt.*;
      public class GameState extends State {
      private World world;
      public GameState(Handler handler){ super(handler); world = new World(handler, "res/world/world1.txt"); handler.setWorld(world); } public void tick() { world.tick(); } public void render(Graphics g) { world.render(g); } }
      classPath:
      /home/gabriel/Programacao/Games/JavaxSwingTests/res
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.