Webradio in App hören

  • Antworten:16
  • Bentwortet
Fabs44
  • Forum-Beiträge: 368

28.05.2015, 20:48:55 via App

Hallo Zusammen,

ich will eine Android App entwickeln für ein ShoutCast Webradiosender.

Die einzige Frage ist, wie kann man ShoutCast in eine App einbinden, sodass man das Radio über die App hören kann?

Vielen Dank im Voraus!

Herliche Grüße Fabian

Liebe Grüße Fabian :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

28.05.2015, 21:06:20 via Website

Sowas gibt es schon z.b. https://play.google.com/store/apps/details?id=net.sourceforge.servestream

Als hilfestellung: Die Webradios stellen einen AudioStream zur verfügung. Diesen musst du empfangen und abspielen.Dann ist noch das Problem, dass es mehrer Protokolle geben kann. Es gibt zb. normale Strams über http oder welche über mms etc. Zudem brauchst du dann einen DirektLink zu Stream ohne HTML gedöns drumrum xD

Im Inet finden sich dann beispiele zum laden von Streams etc. zum abspielen würde ich erstmal schuen ob der MediaPlayer das kann, ansonsten könnte eine Lib abhilfe schaffen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabs44
  • Forum-Beiträge: 368

31.05.2015, 10:51:30 via Website

Gibt es die Möglichkeit in einer Androide App ein Html Feld zu integrieren. In dieses Feld könnte ich dann den ShoutCast Player einfügen.

LG Fabs44

Liebe Grüße Fabian :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

31.05.2015, 17:47:33 via App

Ja dafür nimmst du einfach eine normale WebView

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabs44
  • Forum-Beiträge: 368

31.05.2015, 17:50:52 via App

Wenn ich jetzt meine App installiere, dann ist die Activity Webseite (WebView Activity) als eigenes Icon installiert. Bei den anderen Activitys passiert das nicht. An was kann das liegen?

— geändert am 31.05.2015, 17:51:49

Liebe Grüße Fabian :)

Antworten
Fabs44
  • Forum-Beiträge: 368

31.05.2015, 18:01:28 via App

Pascal P.

Ja dafür nimmst du einfach eine normale WebView

Code in eine neue Webseite einfügen und dann die WebSeite ins WebView nehmen. Richtig?

Liebe Grüße Fabian :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

31.05.2015, 18:04:48 via Website

zu 1. Da stimmt was in der manifest nicht. Poste diese mal.

zu 2. muss nicht sein, du kannst auch die HTML als Text auf dem gerät selber generieren und dann reinladen. Ich nehme an dass sich die Stream Url nicht ändert also könntest du diese hardcoden falls du nichtm mehrere gleichzeitig willst.
Wenn du die HTML extern also über deine eigene Webseite macht, hast du halt einen zwischenserver. Musst du wissen was dir besser gefällt bzw. was einfacher ist

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabs44
  • Forum-Beiträge: 368

01.06.2015, 11:24:08 via Website

Pascal P.

zu 1. Da stimmt was in der manifest nicht. Poste diese mal.

<?xml version="1.0" encoding="utf-8"?>

package="entwickler.tk.radioapp" >

<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Home"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Webseite"
        android:label="@string/title_activity_webseite" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Livestream"
        android:label="@string/title_activity_livestream" >
    </activity>
    <activity
        android:name=".LiveChat"
        android:label="@string/title_activity_live_chat"
        android:parentActivityName=".Webseite" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="entwickler.tk.radioapp.Webseite" />
    </activity>
    <activity
        android:name=".Impressum"
        android:label="@string/title_activity_impressum" >
    </activity>
</application>


Welche Werbefirmen gibt es noch (außer AdMob) für Android Apps? Gibt es welche die auch pro View bezahlen?


Welchen TextView nimmt man am Besten für einen langen Text (am Besten mit Scroll Funktion)?

— geändert am 01.06.2015, 12:39:48

Liebe Grüße Fabian :)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

01.06.2015, 13:44:35 via App

Im Manifest nimmst du bei der Website Activity komplett den Intent Filter raus.
Zum TextView: Es gibt doch nur ein "TextView"? Das sollte auch automatisch scrollbar sein, wenn der Text lang ist.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Fabs44
  • Forum-Beiträge: 368

01.06.2015, 18:23:14 via App

Sven R.

Im Manifest nimmst du bei der Website Activity komplett den Intent Filter raus.[quote]
Super! Jetzt ist es so, wie es sein soll :)

[quote=Sven R.]
Zum TextView: Es gibt doch nur ein "TextView"? Das sollte auch automatisch scrollbar sein, wenn der Text lang ist.

Ich habe den SmallText TextView genommen. Im Preview Handy ist der Text schön mit Absätzen etc. geordnet. Auf meinem Hand ist das ein Text ohne Absätze, was ein Impressum mit Disclaimer sehr unübersichtlich macht.
Der Text wird auch einfach abgeschnitten und ist dadurch leider nicht scrollbar.

— geändert am 01.06.2015, 18:25:42

Liebe Grüße Fabian :)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

01.06.2015, 20:41:51 via App

Okay, vergessen, dann pack das TextView in ein ScrollView.
Machst du für jeden Absatz ein /n ?

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Fabs44
  • Forum-Beiträge: 368

01.06.2015, 23:22:43 via Website

Der Homescreen der App besteht aus Buttons, die dann die entsprechende Activity aufrufen.
Das Problem ist ich muss erst die im Code oberste Activity aufrufen und dann kann ich erst die zweite Activity aufrufen.
Das liegt vermutlich an dem Code, der immer mehr "nach rechts geht" (Fachwort fehlt mir(thinking)):

package entwickler.tk.radioapp;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Home extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    Button button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(v.getContext(), Webseite.class);
            startActivityForResult(intent, 0);

            Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(v.getContext(), Livestream.class);
                    startActivityForResult(intent, 0);

                    Button button = (Button) findViewById(R.id.button3);
                    button.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            Intent intent = new Intent(v.getContext(), LiveChat.class);
                            startActivityForResult(intent, 0);

                            Button button8 = (Button) findViewById(R.id.button8);
                            button8.setOnClickListener(new OnClickListener() {


                                @Override
                                public void onClick(View v) {
                                    Intent intent = new Intent(v.getContext(), Impressum.class);
                                    startActivityForResult(intent, 0);
                                };
                            });
                        };
                    });
                };
            });
        };
    });
}

}

Wie mache ich das Richtig, sodass die alle auf gleicher Höhe sind?

Liebe Grüße Fabian :)

Antworten
Fabs44
  • Forum-Beiträge: 368

01.06.2015, 23:59:52 via App

Sven R.

Machst du für jeden Absatz ein /n ?

Das /n wird im Text angezeigt und leider kein Absatz.

Liebe Grüße Fabian :)

Antworten
Fabs44
  • Forum-Beiträge: 368

02.06.2015, 22:02:22 via App

Ludy

Hallo Fabs44,

das ist von Sven nur ein Verschreiber, es muss natürlich ein Backslash sein.

\n

Danke! Jetzt hats funktioniert :)


[quote=Fabs44]Der Homescreen der App besteht aus Buttons, die dann die entsprechende Activity aufrufen.
Das Problem ist ich muss erst die im Code oberste Activity aufrufen und dann kann ich erst die zweite Activity aufrufen.
Das liegt vermutlich an dem Code, der immer mehr "nach rechts geht" (Fachwort fehlt mir(thinking)):

package entwickler.tk.radioapp;

import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Home extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    Button button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(v.getContext(), Webseite.class);
            startActivityForResult(intent, 0);

            Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(v.getContext(), Livestream.class);
                    startActivityForResult(intent, 0);

                    Button button = (Button) findViewById(R.id.button3);
                    button.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            Intent intent = new Intent(v.getContext(), LiveChat.class);
                            startActivityForResult(intent, 0);

                            Button button8 = (Button) findViewById(R.id.button8);
                            button8.setOnClickListener(new OnClickListener() {


                                @Override
                                public void onClick(View v) {
                                    Intent intent = new Intent(v.getContext(), Impressum.class);
                                    startActivityForResult(intent, 0);
                                };
                            });
                        };
                    });
                };
            });
        };
    });
}

}

Wie mache ich das Richtig, sodass die alle auf gleicher Höhe sind?[/quote]

— geändert am 02.06.2015, 22:03:00

Liebe Grüße Fabian :)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

03.06.2015, 16:02:50 via App

Ludy

[…] das ist von Sven nur ein Verschreiber […]

Ja, danke.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Fabs44
  • Forum-Beiträge: 368

04.06.2015, 20:26:21 via App

Hallo Zusammen!

Danke für eure Hilfe!!

Ich habe jetzt alle "Blöcke" einzeln verschlossen mit "{);"
Jetzt klappt alles :)


Wie kann man in einem WebView einen Zoom integrieren, sodass man an eine Webseite hin und weg zoomen kann?

LG Fabs44 :)

— geändert am 04.06.2015, 20:26:42

Liebe Grüße Fabian :)

Antworten