[Android]Záznam internetového radia

Programování pro mobilní telefony, hodinky, Android, iOS, Windows Phone

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Víťa1 6. 7. 2017 15:28

Obracím se na toto fórum v nejkrajnějším případě ale už nevím si rady potřeboval bych udělat aplikaci pro android která by mě zaznamenala úsek délku dvou hodin od 23 hodin a to s tohoto streamu http://icecast2.play.cz/croregion128.mp3 v příloze mám něco co mi poradil jeden típek s kontaktu ze skype tento odkaz https://stackoverflow.com/questions/538 ... 61#5384161 který jsem chtěl vlomit do mého projektu v Eclipse ale pořád někde dělám chybu otázka kde ? díky za pomoc
Přílohy
Stream.jpg
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 6. 7. 2017 16:14

No minimálně ti tam chybí importy. Třeba pro URL je to java.net.URL.
Další si můžeš najít tady: https://developer.android.com/reference/classes.html
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod oooooooooo 6. 7. 2017 16:56

Mas to jako ukol nebo proste to potrebujes zaznamenat? Abys nevymyslel kolo..
oooooooooo
Pokročilý
Uživatelský avatar

Odeslat příspěvekod Víťa1 6. 7. 2017 18:21

Wikan píše:No minimálně ti tam chybí importy. Třeba pro URL je to java.net.URL.

No dobře ale proč to není na uvedeném odkazu uvedeno , ze kterého jsem použil ten příklad teda jestli je to míněno jako příklad ? to je už upraveno
Ale pořád narážím na další chyby
jestli je potřebné vytvořit lokální proměnou "fileOutputStream" tam by to taky mělo být uvedeno ne?
Přílohy
Stream.gif
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod D1rty 6. 7. 2017 18:56

Víťa1 ako tak pozeram nemas moc skusenosti s programovanim.. vybral si si trochu tazky ciel ako zaciatocnik...
Bud nech to to tvoj kamarat ajtak nakodi, alebo si to nechaj niekym nakodit, za nejake drobne... Alebo sa s tym trap :)

Btw este otazka? musi to byt Android aplikacia? Neviem ako ty ale ja som kodil Android aplikacie v android studiu.. Ked to kodis v eclipse nebolo by jednoduchsie si spravit aplikaciu na pc?? + dokodit nech sa po 2 hodinach PC vypne?
D1rty
Junior

Odeslat příspěvekod Wikan 6. 7. 2017 19:06

Víťa1 píše:proč to není na uvedeném odkazu uvedeno

Protože ten odkaz je pro lidi, kteří mají alespoň elementární znalosti o programování v Javě.
Víťa1 píše:jestli je potřebné vytvořit lokální proměnou "fileOutputStream" tam by to taky mělo být uvedeno ne?

To si právě i začátečník dokáže snadno sám opravit. Ona ta proměnná byla nejspíše deklarována výše, než je daná ukázka.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Víťa1 6. 7. 2017 19:24

Jsem zjistil že na té stránce je chyba tam má být
Kód: Vybrat vše
FileOutputStream fileOutputStream = new FileOutputStream(outputSource);
než
jak je uvedeno
Kód: Vybrat vše
fileOutputStream = new FileOutputStream(outputSource);

a ten kontakt mi mimo jiné instaloval ovládač pro tablet abych ti vyvíjené aplikace jsem mohl odlaďovat na fyzickém zařízení ,já ho mám jako za znalého
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 6. 7. 2017 19:30

Nemusí to být chyba. Jak už jsem psal: "Ona ta proměnná byla nejspíše deklarována výše, než je daná ukázka."
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod D1rty 6. 7. 2017 20:05

Ten kod na stackoverflow je plne funkcny.. 40 minut a mam java aplikaciu, ktoru si pozadoval, akurat to nie je android aplikacia... mam tam aj nastavenie zaciatku nahravania aj ukonenia nahravania... uklada to pekne do mp3.

Aj ked si zaciatocnik viac ako 2 hodinky to kodit nemozes.
D1rty
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 15:29

Co dělám špatně ]:-< ???
Přílohy
Stream1.jpg
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Nargon 7. 7. 2017 15:55

Špatně děláš matematiku.
2 otevírací závorky, ale jen jedna zavírací závorka. Je jasný že to řve že tomu ta druhá chybí.
viz: https://ctrlv.cz/ZWlY

Ale taky si myslím že jsi si vzal příliš velké sousto. Vše co tady popisuješ vlastně nejsou chyby, to ti jen vývojové prostředí říká že jsi na něco zapomněl a máš to opravit. Často ti i napíše jak. Tohle by měl zvládnout "opravit" i amatér programátor, který se daným prostředím seznamuje.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod Víťa1 7. 7. 2017 16:38

S tĕmi závorkami jsem to zkoušel všelijak a nic, schálnĕ ve kterém místĕ chybí uzavírací závorka ? díky
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 7. 7. 2017 17:31

Řádek 41. Fakt si nechceš najít jiný koníček?
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 17:33

Nejdřív to řešíš pro webhosting a php:
http://pc.poradna.net/q/view/1726401-za ... adia-v-php
tam jsem ti radil:
Kód: Vybrat vše
file_put_contents('radio.mp3', file_get_contents('http://icecast2.play.cz/croregion128.mp3', NULL, NULL, 0, 10 * 60 * 16 * 1024));

teď to zas řešíš pro android a zas na to jdeš totálně složitě.
Proč na to nejdeš jednoduše? Android nemám, ale i na něj je php, i na něj jsou prográmky jako curl nebo ffmpeg.
Příkaz pro ffmpeg:
Kód: Vybrat vše
ffmpeg -y -i "http://icecast2.play.cz/croregion128.mp3" -acodec copy radio.mp3

Příkaz pro curl:
Kód: Vybrat vše
curl --output radio.mp3 "http://icecast2.play.cz/croregion128.mp3"

... a pak už je to jen otázka to po dvou hodínách zavřít nebo nastavit dvouhodinové nahrávání (např. u curl je to parametr --max-time <seconds>).
Krakatoa
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 17:51

Wikan píše:Řádek 41. Fakt si nechceš najít jiný koníček?

V mém případĕ je to velký kůň :-D ale já si nemohu pomoc to je už v mém případĕ "diagnóza"

-- 7. 7. 2017 17:55 --

Krakatoa píše:Nejdřív to řešíš pro webhosting a php:
http://pc.poradna.net/q/view/1726401-za ... adia-v-php
tam jsem ti radil:
Kód: Vybrat vše
file_put_contents('radio.mp3', file_get_contents('http://icecast2.play.cz/croregion128.mp3', NULL, NULL, 0, 10 * 60 * 16 * 1024));

teď to zas řešíš pro android a zas na to jdeš totálně složitě.
Proč na to nejdeš jednoduše? Android nemám, ale i na něj je php, i na něj jsou prográmky jako curl nebo ffmpeg.
Příkaz pro ffmpeg:
Kód: Vybrat vše
ffmpeg -y -i "http://icecast2.play.cz/croregion128.mp3" -acodec copy radio.mp3

Příkaz pro curl:
Kód: Vybrat vše
curl --output radio.mp3 "http://icecast2.play.cz/croregion128.mp3"

... a pak už je to jen otázka to po dvou hodínách zavřít nebo nastavit dvouhodinové nahrávání (např. u curl je to parametr --max-time <seconds>).

Co to je curl? :oops:
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 18:04

Co to je curl?

To si najdi na google co curl je.
Pro android by měl být curl například tu:
https://play.google.com/store/apps/deta ... curl&hl=cs
ale jak jsem psal, android nemám, takže si s tím budeš muset poradit sám, já píšu postup pro windows, na androidu by to mělo být ale podobné.
Krakatoa
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 18:33

Wikan píše:Řádek 41. Fakt si nechceš najít jiný koníček?

přidal jsem uzavírací složenou závorku a výsledek je to
Přílohy
Stream2.jpg
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 18:40

Proč rači neřešíš ten curl? :-D
Ten je jednodušší, ve windows mi funguje (2 hod = 7200 vteřin):
Kód: Vybrat vše
curl -m 7200 -o radio.mp3 http://icecast2.play.cz/croregion128.mp3

A to je celý funkční kód na nahrání dvou hodin toho tvého rádia :-D
Krakatoa
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 18:52

To mám dát co příkazového řádku nebo jak? nebo co si mám stáhnout?díky
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 18:56

Víš co, já na tebe už hážu bobek, toto fakt nemá cenu.
Krakatoa
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 19:00

Já se jen ptám :oops:
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 19:10

Jenže ty se ptáš na něco, na co jsem ti už dal odpověď.
Jak jsem psal, já mám windows (a ještě mám zkušenosti s debianem), android máš ty a ty bys ho měl znát. Já tě jen navádím. Jak jsem uvedl, existuje třeba curl, který se dá použít na různých operačních systémech, windows počínaje, tvým androidem konče.
Když já chci použít curl ve windows, tak stáhnu binárku curl, rozbalím ji do jedné složky, v té složce vytvořím textový cmd soubor, dám do něj skript a ten cmd potom spustím (nebo ten skript dávám do příkazového řádku).
V případě androidu bys měl vědět ty jak to dělat, ty máš android, jak jsem uvedl, curl na android máš asi v tom odkaze, co jsem uváděl:
https://play.google.com/store/apps/deta ... curl&hl=cs
takže to máš stáhnout. A jak vidíš, je tam napsáno "curl is a command line tool for transferring data with URL syntax" takže ano, do příkazového řádku to máš psát nebo co to máš v androidu, nebo do textového souboru pro skript, jestli v androidu něco takového je. A jak je vidět na obrázku, je tam něco i k syntaxe skriptu, pokud bude jiná než pro windows (což asi ne), tak si ji uprav.
Krakatoa
Junior

Odeslat příspěvekod Víťa1 7. 7. 2017 19:28

Když já chci použít curl ve windows, tak stáhnu binárku curl,

A odkud ?pro win10 a pro win7 ultimate
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Krakatoa 7. 7. 2017 19:35

Najednou to chceš pro windows? :-D
To, jak teď zkouším, tak k tomu jsem na windows 10 použil:
https://curl.haxx.se/download.html
Win64 - Generic
Win64 x86_64 7zip 7.54.1 binary SSL SSH Viktor Szakáts 1.83 MB
a odkaz je to tento:
https://bintray.com/artifact/download/v ... 4-mingw.7z
a takto nějak to vypadá v akci:
http://imgur.com/a/rUwen
Krakatoa
Junior

Odeslat příspěvekod Wikan 7. 7. 2017 20:00

přidal jsem uzavírací složenou závorku a výsledek je to

Ale jaké chyby to hlásí, to prostě nemůžeš napsat, co? Ty se fakt nikdy nic nenaučíš.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Víťa1 9. 7. 2017 10:15

přidal jsem uzavírací složenou závorku a výsledek je to

Ale jaké chyby to hlásí, to prostě nemůžeš napsat, co? Ty se fakt nikdy nic nenaučíš.

Promiň tak já to napravuji už jsem taky zkoušel Try/catch to má něco společného s výjimkami to platí pro všechny chyby až na tu poslední co je zvýrazněna modrou barvou , ale já jsem odchován na pascalu a taky se říká že "starého psa novým kouskům nenaučíš ! .Tak mě něco jednoduchého spíchni sám jestli tě mohu poprosit díky předem
Přílohy
Stream3.jpg
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod D1rty 9. 7. 2017 10:30

Vita poslal som ti moj kod, ktory ten zvukovy stream ulozi do .mp3, da sa nastavit zaciatok a koniec... Ten kod vyzera sice jak keby ho pisal retard, ale funguje, tak co furt riesis? Mas v nom aj osetrenie vsetkych vynimiek.
D1rty
Junior

Odeslat příspěvekod Víťa1 9. 7. 2017 10:53

Já ti samozřejme dĕkuji ale já bych přece nĕco na tablet s androidem nechce se mi nechat bĕžet NB s win7 přes celou noc jeden zdůvodů jsou viry díky
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 9. 7. 2017 11:06

Nejsi odchován na Pascalu, ten taky neumíš.
Proměnná bytesRead je v tom kódu zcela zbytečná.
A to si jako myslíš, že ti tam přes noc naskáčou sami od sebe nějaké viry? To fakt ne.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod oooooooooo 9. 7. 2017 12:07

Vymysleni kola jde Vitovi jedna basen.Na androidovi pozadovane umi tasker na par kliku,pokud si prida addon tak celej task jde i exportovat jako samostatny apk na dalsi 4 kliky.Asi nepochopil proc se ptam jestli nahodou nevymysli kolo.Polozka rekord audio neni pro srandu kralikum.
oooooooooo
Pokročilý
Uživatelský avatar

Odeslat příspěvekod Víťa1 9. 7. 2017 23:14

D1rty píše:Vita poslal som ti moj kod, ktory ten zvukovy stream ulozi do .mp3, da sa nastavit zaciatok a koniec... Ten kod vyzera sice jak keby ho pisal retard, ale funguje, tak co furt riesis? Mas v nom aj osetrenie vsetkych vynimiek.

Je mi to líto ale to mě nefunguje viz příloha je to škoda

-- 11. 7. 2017 11:10 --

Velká omluva pro uživatele D1rty chyba byla mezi klávesnicí a židlí :-)

-- 13. 7. 2017 13:31 --

Tak jsem pokročil ale když to nahraji emulátoru tak se tam objeví aplikace přestala pracovat kde může být chyba ?s tímto to nějak šlo přeložit ,a přiznám se bez mučení že s těmi výjimkami v tom mám mimořádný "hokej" :oops:
try {
catch (IOException v){
Log.d(LOG_TAG,"balal");

Kód: Vybrat vše
package com.example.stream;

import java.io.FileOutputStream;
import java.net.URL;
import java.io.InputStream;
import java.io.IOException;

import android.media.MediaRecorder;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends ActionBarActivity {
   private static final String LOG_TAG = null;
   InputStream inputStream;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      MediaRecorder mRecorder= new MediaRecorder();
      mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
      mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
      
      
       try {
      URL url = new URL("http://icecast2.play.cz/croregion128.mp3");
        inputStream = url.openStream();
        Log.d(LOG_TAG, "url.openStream()");

        FileOutputStream fileOutputStream = new FileOutputStream("skodna.mp3");
        Log.d(LOG_TAG, "FileOutputStream: " + "eas");

        int c;

        while ((c = inputStream.read()) != -1) {
           
         //Log.d(LOG_TAG, "bytesRead=" + bytesRead);
            fileOutputStream.write(c);
        }     
       }
   catch (IOException v){
      Log.d(LOG_TAG,"balal");
   }
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      int id = item.getItemId();
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}

díky předem za pomoc
Přílohy
java netRadio.jpg
Promiňte mi. takové triviální otázky ale jsem samouk a androidí embryo Mám WIN8.1
Víťa1
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník